library(tidyverse)
library(sauceR)
module_source("xlsform-utilities.R", module_name = "Figure1")
surveyDF <- readxl::read_excel("RISE_enumeration_family_Fiji.xlsx",
sheet = "survey")
choicesDF <- readxl::read_excel("RISE_enumeration_family_Fiji.xlsx",
sheet = "choices")
settingsDF <- readxl::read_excel("RISE_enumeration_family_Fiji.xlsx",
sheet = "settings")
form_title <- settingsDF$form_title[[1]]
form_id <- settingsDF$form_id[[1]]
form_version <- settingsDF$version[[1]]
default_language <- settingsDF$default_language[[1]]
rm(settingsDF)
surveyDF <- filter(surveyDF,
!(type %in% c("note",
"begin group",
"end group",
"begin repeat",
"end repeat")),
!is.na(type))
surveyDF$id <- 1:nrow(surveyDF)
surveyDF$factorlabel <- NA
the_labels <- grep("select_one|select_multiple", surveyDF$type)
surveyDF$factorlabel[the_labels] <- surveyDF$type[the_labels]
surveyDF$factorlabel <- gsub("select_one ", "", surveyDF$factorlabel)
surveyDF$factorlabel <- gsub("select_multiple ", "", surveyDF$factorlabel)
surveyDF$type[surveyDF$type == "start"] <- "date-time (start)"
surveyDF$type[surveyDF$type == "end"] <- "date-time (end)"
surveyDF$type[surveyDF$type == "deviceid"] <- "deviceid (string)"
surveyDF$type[surveyDF$type == "text"] <- "string"
surveyDF$type[surveyDF$type == "text"] <- "string"
surveyDF$type[surveyDF$type == "barcode"] <- "string"
surveyDF$type[surveyDF$type == "calculate"] <- "unknown (calculate)"
the_type <- grep("select_one", surveyDF$type)
surveyDF$type[the_type] <- "factor (select one)"
the_type <- grep("select_multiple", surveyDF$type)
surveyDF$type[the_type] <- "factor (select multiple)"
output_format <- "pdf_document"
yaml_header <- c("---",
paste("title: ", "'", form_title, " Codebook", "'", sep = ''),
"author: 'Monash-RISE'",
paste("date: ", '"', "`r format(Sys.time(), '%d %B, %Y')`", '"'),
paste("output: ", output_format, sep = ''),
"---")
write(yaml_header, file="out.Rmd")
write(paste("\n","Form ID: ", form_id, "\t",
"Form Version: ", form_version, "\n", sep = ''),
file="out.Rmd", append=T)
for(i in 1:nrow(surveyDF)){
write("***", file="out.Rmd", append=T)
write(paste("# Variable Name: ", surveyDF$name[i], sep = ''), file="out.Rmd", append=T)
write(paste("Variable Label: ",
ifelse(is.na(surveyDF$`label::English`[i]), "NULL", surveyDF$`label::English`[i])
,"\n",
sep = ''), file="out.Rmd", append=T)
write(paste("Data Type: ", surveyDF$type[i], sep = ''), file="out.Rmd", append=T)
write("\n", file="out.Rmd", append=T)
if(grepl("factor", surveyDF$type[i])){
factor_label <- surveyDF$factorlabel[i]
factorDF <- filter(choicesDF, list_name == factor_label) %>%
select(value, label = `label::English`) %>%
arrange(as.numeric(value))
write("Value | Label", file="out.Rmd", append=T)
write("------|------", file="out.Rmd", append=T)
for(j in 1:nrow(factorDF)){
write(paste(factorDF$value[j], "|", factorDF$label[j]), file="out.Rmd", append=T)
}
}
}
rmarkdown::render("out.Rmd", "pdf_document")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.