Generate a consolidated xlsform from a list of xlsform in order to quickly flag differences
Source:R/xlsform_compare.R
xlsform_compare.Rd
Note that comparison is done for a selected language
Arguments
- listfile
list of path to multiple xlsform files - ll assumed to be in the same folder. The first one will be used as the master to compare the other to
- folder
where all the files are located
- label_language
Language to be used in case you have more than one. If not specified, the 'default_language' in the 'settings' worksheet is used. If that is not specified and more than one language is in the XlsForm, the language that comes first within column order will be used.
- fileout
if specified defined the name of the file to save the xlsform _compare output
Examples
check <- xlsform_compare(listfile = c( "demo.xlsx","demo_adapt1.xlsx","demo_adapt2.xlsx"),
folder = stringr::str_sub(system.file("", package = "XlsFormPrettyPrint"), end = -1) ,
label_language = NULL,
fileout = NULL)
#> demo_adapt1.xlsx
#>
#> demo_adapt2.xlsx
#>
# variablescompare,
knitr::kable(utils::head(as.data.frame(check[1]), 10))
#>
#>
#> |name |type |type.ifdiff.demo_adapt1 |type.ifdiff.demo_adapt2 |list_name |list_name.ifdiff.demo_adapt1 |list_name.ifdiff.demo_adapt2 |label |label.ifdiff.demo_adapt1 |label.ifdiff.demo_adapt2 |hint |hint.ifdiff.demo_adapt1 |hint.ifdiff.demo_adapt2 |required |required.ifdiff.demo_adapt1 |required.ifdiff.demo_adapt2 |relevant |constraint.ifdiff.demo_adapt1 |constraint.ifdiff.demo_adapt2 |constraint |relevant.ifdiff.demo_adapt1 |relevant.ifdiff.demo_adapt2 |
#> |:----------------|:-----------|:-----------------------|:-----------------------|:-----------|:----------------------------|:----------------------------|:--------------------------------------------|:------------------------|:------------------------|:-----------------------|:-----------------------|:-----------------------|:--------|:---------------------------|:---------------------------|:---------------------------------------------------|:-----------------------------|:-----------------------------|:----------|:---------------------------|:---------------------------|
#> |start |start |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |
#> |end |end |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |
#> |simserial |simserial |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |
#> |deviceid |deviceid |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |
#> |phonenumber |phonenumber |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |
#> |your_name |text |NA |NA |NA |NA |NA |001b. Enter your name below. bla bla bla bla |NA |NA |Please record your name |NA |NA |true |NA |NA |NA |NA |NA |NA |NA |NA |
#> |school_level_001 |select_one |NA |NA |school_list |NA |NA |Whoa - does this question sync? 2 |NA |NA |NA |NA |NA |true |NA |NA |(${begin_interview}='yes') and (${available}='yes') |NA |NA |NA |NA |NA |
#> |name_typed |text |NA |NA |NA |NA |NA |001b. Enter your name below. |NA |NA |Please record your name |NA |NA |true |NA |NA |NA |NA |NA |NA |NA |NA |
#> |today |calculate |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |false |NA |NA |NA |NA |NA |NA |NA |NA |
#> |this_country |calculate |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |NA |false |NA |NA |NA |NA |NA |NA |NA |NA |
# choicescompare
knitr::kable(utils::head(as.data.frame(check[2]), 10, 10))
#>
#>
#> |name |list_name |label |label.ifdiff.demo_adapt1 |label.ifdiff.demo_adapt2 |
#> |:---------|:-----------|:--------------|:------------------------|:------------------------|
#> |never |school_list |Never attended |NA |NA |
#> |never |school_list |Never attended |NA |Never Attended |
#> |never |school_list |Never attended |Never Attended |NA |
#> |never |school_list |Never attended |Never Attended |Never Attended |
#> |primary |school_list |Primary |NA |NA |
#> |primary |school_list |Primary |NA |Primary (1-8) |
#> |primary |school_list |Primary |Primary (1-8) |NA |
#> |primary |school_list |Primary |Primary (1-8) |Primary (1-8) |
#> |secondary |school_list |Secondary |NA |NA |
#> |secondary |school_list |Secondary |NA |Secondary (9-12) |