From 45e9a7e6ae9df9a0e6ee8c5f94809dc1c6930a5b Mon Sep 17 00:00:00 2001
From: edouard-legoupil
Date: Thu, 17 Sep 2020 20:39:31 -0500
Subject: [PATCH 01/12] review project structure
---
DESCRIPTION | 2 +-
NEWS.md | 7 +
R/kobo_clean.R | 42 +-
R/kobo_create_indicators.R | 101 +++--
R/kobo_crunching_report.R | 63 ++-
R/kobo_dico.R | 6 +-
R/kobo_get_begin_repeat.R | 2 +-
R/kobo_get_config.R | 2 +-
R/kobo_load_data.R | 56 ++-
R/kobo_projectinit.R | 428 ++++++++++--------
README.md | 2 +-
data/form.xls | Bin 356352 -> 356352 bytes
docs/404.html | 4 +-
docs/CODE_OF_CONDUCT.html | 4 +-
docs/CONTRIBUTING.html | 4 +-
docs/ISSUE_TEMPLATE.html | 8 +-
docs/articles/Anonymisation.html | 6 +-
docs/articles/Cleaning.html | 6 +-
docs/articles/Console.html | 6 +-
docs/articles/Crunching.html | 6 +-
docs/articles/Dissiminating.html | 6 +-
docs/articles/Getting_data.html | 6 +-
docs/articles/Predicting_Scoring.html | 6 +-
docs/articles/Sampling.html | 6 +-
docs/articles/Troubleshooting.html | 6 +-
docs/articles/index.html | 4 +-
docs/articles/xlsform.html | 6 +-
docs/authors.html | 4 +-
docs/index.html | 8 +-
docs/news/index.html | 12 +-
docs/pkgdown.css | 4 +-
docs/pkgdown.yml | 4 +-
docs/reference/Rplot001.png | Bin 0 -> 1011 bytes
docs/reference/format_si.html | 16 +-
docs/reference/get_me.html | 9 +-
docs/reference/index.html | 4 +-
docs/reference/kobo_aggregate.html | 17 +-
docs/reference/kobo_anonymisation_report.html | 17 +-
docs/reference/kobo_anonymise.html | 17 +-
docs/reference/kobo_apps.html | 15 +-
docs/reference/kobo_arrange_variablename.html | 18 +-
docs/reference/kobo_atlas_report.html | 25 +-
docs/reference/kobo_check_analysis_plan.html | 15 +-
.../kobo_check_project_configuration.html | 15 +-
docs/reference/kobo_clean.html | 18 +-
docs/reference/kobo_cluster_report.html | 23 +-
docs/reference/kobo_consolidateone.html | 18 +-
docs/reference/kobo_correlation_analysis.html | 15 +-
docs/reference/kobo_create_indicators.html | 17 +-
docs/reference/kobo_crunching_report.html | 33 +-
docs/reference/kobo_data_downloader.html | 17 +-
docs/reference/kobo_datasets.html | 15 +-
docs/reference/kobo_datasets2.html | 15 +-
docs/reference/kobo_ddi.html | 15 +-
docs/reference/kobo_dico.html | 17 +-
docs/reference/kobo_dummy.html | 17 +-
docs/reference/kobo_edit_form.html | 25 +-
docs/reference/kobo_encode.html | 17 +-
docs/reference/kobo_encode_repeat.html | 17 +-
docs/reference/kobo_form.html | 17 +-
docs/reference/kobo_forminfo.html | 18 +-
docs/reference/kobo_getMainDirectory.html | 13 +-
docs/reference/kobo_get_begin_repeat.html | 15 +-
docs/reference/kobo_get_config.html | 15 +-
.../reference/kobo_get_dataframes_levels.html | 15 +-
docs/reference/kobo_get_theme.html | 22 +-
docs/reference/kobo_host.html | 15 +-
docs/reference/kobo_indicator.html | 15 +-
docs/reference/kobo_label.html | 17 +-
docs/reference/kobo_left_align.html | 15 +-
docs/reference/kobo_load_data.html | 15 +-
docs/reference/kobo_load_packages.html | 14 +-
docs/reference/kobo_map_cat.html | 18 +-
docs/reference/kobo_map_int.html | 18 +-
docs/reference/kobo_prediction_report.html | 15 +-
docs/reference/kobo_prepare_form.html | 15 +-
docs/reference/kobo_projectconfig.html | 13 +-
docs/reference/kobo_projectinit.html | 12 +-
docs/reference/kobo_question.html | 16 +-
docs/reference/kobo_registration.html | 13 +-
.../kobo_rename_xlsform_dataframes.html | 15 +-
docs/reference/kobo_samplingframe.html | 35 +-
docs/reference/kobo_shiny.html | 18 +-
docs/reference/kobo_split_multiple.html | 17 +-
docs/reference/kobo_submission_count.html | 17 +-
docs/reference/kobo_time_parser_UTC.html | 19 +-
docs/reference/kobo_to_xlsform.html | 21 +-
docs/reference/kobo_unhcr_style_bar.html | 13 +-
docs/reference/kobo_unhcr_style_bar_big.html | 13 +-
docs/reference/kobo_unhcr_style_histo.html | 10 +-
.../reference/kobo_unhcr_style_histo_big.html | 10 +-
docs/reference/kobo_unhcr_style_map.html | 13 +-
docs/reference/kobo_unhcr_style_map_big.html | 13 +-
docs/reference/kobo_unhcr_style_scatter.html | 13 +-
.../kobo_unhcr_style_scatter_big.html | 13 +-
docs/reference/kobo_weight.html | 16 +-
docs/reference/ltbl.html | 17 +-
docs/reference/multresponse.html | 17 +-
docs/reference/psum.html | 15 +-
docs/reference/pwd_parse.html | 14 +-
docs/reference/round2.html | 17 +-
docs/reference/round_preserve_sum.html | 17 +-
inst/script/run-analysis.R | 102 ++---
man/kobo_create_indicators.Rd | 2 +-
man/kobo_crunching_report.Rd | 4 +-
105 files changed, 1267 insertions(+), 794 deletions(-)
create mode 100644 docs/reference/Rplot001.png
diff --git a/DESCRIPTION b/DESCRIPTION
index 3e19d59..15b8fac 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,7 +1,7 @@
Type: Package
Package: koboloadeR
Title: A Metapackage for Survey Data Crunching
-Version: 0.1.7
+Version: 0.1.8
Authors@R:
c(person(given = "Edouard",
family = "Legoupil",
diff --git a/NEWS.md b/NEWS.md
index 767395c..bb7404f 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,3 +1,10 @@
+## koboloadeR 0.1.8
+
+ * Refactored the koboloadeR project structure so that it looks like a data package - R, data-raw, data - applying suggestions made here: https://raw.githubusercontent.com/statnmap/prez/master/2019-07_useR_Toulouse.pdf
+
+ * Saving now all intermediary file as binary rda
+
+
## koboloadeR 0.1.7
* Added different output for the crunching report - docx, pptx, html, aspx
diff --git a/R/kobo_clean.R b/R/kobo_clean.R
index 8e3d535..023865e 100644
--- a/R/kobo_clean.R
+++ b/R/kobo_clean.R
@@ -30,9 +30,14 @@ kobo_clean <- function(frame, form = "form.xls", app = "console") {
mainDir <- kobo_getMainDirectory()
form <- as.character(form)
#cat(paste0(form,"\n"))
- formpath <- as.character(paste0(mainDir,"/data/dico_",form,".csv"))
+ #formpath <- as.character(paste0(mainDir,"/data/dico_",form,".csv"))
#cat(paste0(formpath,"\n"))
- dico <- utils::read.csv(formpath, encoding = "UTF-8", na.strings = "")
+ #dico <- utils::read.csv(formpath, encoding = "UTF-8", na.strings = "")
+
+
+ formpath <- as.character(paste0(mainDir,"/data/dico_",form,".rda"))
+ #cat(paste0(formpath,"\n"))
+ load(formpath)
# frame <- MainDataFrame
# frame <- household
@@ -49,7 +54,8 @@ kobo_clean <- function(frame, form = "form.xls", app = "console") {
dico.clean <- dico[ !(is.na(dico[, c("clean")])) , ]
if (nrow(dico.clean) > 0) {
cat(paste0(nrow(dico.clean), " potential variables to clean\n"))
-
+
+ if (file.exists("R/apply_clean.R")) file.remove("R/apply_clean.R")
for (i in 1:nrow(dico.clean)) {
# i <- 1
cat(paste0(i, "- Clean through an external table, if exists, the value of question: ", as.character(dico.clean[ i, c("label")]),"\n"))
@@ -58,7 +64,7 @@ kobo_clean <- function(frame, form = "form.xls", app = "console") {
variable <- paste0(as.character(dico.clean[ i, c("fullname")]))
cleanfile <- paste0(as.character(dico.clean[ i, c("clean")]))
cleanframe <- paste0(substr(as.character(dico.clean[ i, c("clean")]), 1, nchar(cleanfile) - 4))
- formula1 <- paste0(cleanframe," <- utils::read.csv(\"data/", cleanfile,"\", encoding = \"UTF-8\", na.strings = \"\")" )
+ formula1 <- paste0(cleanframe," <- utils::read.csv(\"data-raw/", cleanfile,"\", encoding = \"UTF-8\", na.strings = \"\")" )
formula2 <- paste0("names(",cleanframe,")[1] <- \"",dico.clean[ i, c("fullname")],"\"" )
formula3 <- paste0("names(",cleanframe,")[2] <- \"",dico.clean[ i, c("fullname")],".clean\"" )
formula4 <- paste0("colname <- which(colnames(",framename,") == \"", variable,"\")")
@@ -69,20 +75,20 @@ kobo_clean <- function(frame, form = "form.xls", app = "console") {
formula9 <- paste0("round( nrow(", framename ,"[ !(is.na(", framename ,"$", variable ,".clean)), ]) / nrow(", framename ,") *100,digits = 1),\"%\n\n\"))")
- if (file.exists("code/temp-clean.R")) file.remove("code/temp-clean.R")
- cat(paste0("if (\"", as.character(dico.clean[ i, c("fullname")]) , "\" %in% names(", framename, ")) {" ), file = "code/temp-clean.R" , sep = "\n", append = TRUE)
- cat(paste0(formula1, ""), file = "code/temp-clean.R" , sep = "\n", append = TRUE)
- cat(paste0(formula2, ""), file = "code/temp-clean.R" , sep = "\n", append = TRUE)
- cat(paste0(formula3, ""), file = "code/temp-clean.R" , sep = "\n", append = TRUE)
- cat(paste0(formula4, ""), file = "code/temp-clean.R" , sep = "\n", append = TRUE)
- cat(paste0(formula5, ""), file = "code/temp-clean.R" , sep = "\n", append = TRUE)
- cat(paste0(formula6, ""), file = "code/temp-clean.R" , sep = "\n", append = TRUE)
- cat(paste0(formula7, ""), file = "code/temp-clean.R" , sep = "\n", append = TRUE)
- cat(paste0(formula8, ""), file = "code/temp-clean.R" , sep = "\n", append = TRUE)
- cat(paste0(formula9, "} else {cat(\" That variable is not in that frame...\n\") } "), file = "code/temp-clean.R" , sep = "\n", append = TRUE)
- source("code/temp-clean.R")
- if (file.exists("code/temp-clean.R")) file.remove("code/temp-clean.R")
- }
+ cat(paste0("if (\"", as.character(dico.clean[ i, c("fullname")]) , "\" %in% names(", framename, ")) {" ), file = "R/apply_clean.R" , sep = "\n", append = TRUE)
+ cat(paste0(formula1, ""), file = "R/apply_clean.R" , sep = "\n", append = TRUE)
+ cat(paste0(formula2, ""), file = "R/apply_clean.R" , sep = "\n", append = TRUE)
+ cat(paste0(formula3, ""), file = "R/apply_clean.R" , sep = "\n", append = TRUE)
+ cat(paste0(formula4, ""), file = "R/apply_clean.R" , sep = "\n", append = TRUE)
+ cat(paste0(formula5, ""), file = "R/apply_clean.R" , sep = "\n", append = TRUE)
+ cat(paste0(formula6, ""), file = "R/apply_clean.R" , sep = "\n", append = TRUE)
+ cat(paste0(formula7, ""), file = "R/apply_clean.R" , sep = "\n", append = TRUE)
+ cat(paste0(formula8, ""), file = "R/apply_clean.R" , sep = "\n", append = TRUE)
+ cat(paste0(formula9, "} else {cat(\" That variable is not in that frame...\n\") } "), file = "R/apply_clean.R" , sep = "\n", append = TRUE)
+
+ }
+ source("R/apply_clean.R")
+ #if (file.exists("R/apply_clean.R")) file.remove("R/apply_clean.R")
}
}
return(frame)
diff --git a/R/kobo_create_indicators.R b/R/kobo_create_indicators.R
index 27ec3f3..90498cb 100644
--- a/R/kobo_create_indicators.R
+++ b/R/kobo_create_indicators.R
@@ -5,7 +5,7 @@
#' @description Function to compute indicators from indicator sheet
#'
#' @param form The full filename of the form to be accessed (xls or xlsx file).
-#' It is assumed that the form is stored in the data folder.
+#' It is assumed that the form is stored in the data-raw folder.
#'
#'
#' @return No return, all results will be saved inside new CSV files
@@ -24,7 +24,7 @@
kobo_create_indicators <- function(form = "form.xls") {
mainDir <- kobo_getMainDirectory()
- form_tmp <- paste(mainDir, "data", form, sep = "/", collapse = "/")
+ form_tmp <- paste(mainDir, "data-raw", form, sep = "/", collapse = "/")
tryCatch({
#### Load and test i indicators #############################################################################
@@ -46,7 +46,9 @@ kobo_create_indicators <- function(form = "form.xls") {
## Check if there's a repeat - aka hierarchical structure in the dataset
if (length(dataBeginRepeat) > 0) {
for (dbr in dataBeginRepeat) {
- dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
+ # dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
+ load(paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
+
assign(dbr, dataFrame)
}
}
@@ -59,8 +61,8 @@ kobo_create_indicators <- function(form = "form.xls") {
## Load data & dico #############################################################################
#form <- "form.xls"
## Run this only after data cleaning
- dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
-
+ # dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
+ load(paste(mainDir,"/data/dico_",form,".rda",sep = ""))
## Create the dicotemp #############################################################################
#names(dico)
dicotemp <- data.frame(c("trigger"))
@@ -112,8 +114,33 @@ kobo_create_indicators <- function(form = "form.xls") {
## Load indicator info #############################################################################
- for (i in 1:nrow(indicator))
+ if (file.exists(paste0(mainDir,"/R/build_indicator.R") )) file.remove(paste0(mainDir,"/R/build_indicator.R"))
+
+
+ cat(paste('### Script to generate indicator: ',sep = ""), file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+ cat(paste('form <- "',form,'"',sep = ""), file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+ cat("mainDir <- kobo_getMainDirectory()", file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+ cat('form_tmp <- paste(mainDir, "data", form, sep = "/", collapse = "/")', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+
+
+ cat('dataBeginRepeat <- kobo_get_begin_repeat(form)', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+ cat('dataBeginRepeat <- dataBeginRepeat$names', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+
+ # cat('MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), encoding = "UTF-8", na.strings = "NA")', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+ cat('load(paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+
+ ## Check if there's a repeat - aka hierarchical structure in the dataset
+ if (length(dataBeginRepeat) > 0) {
+ cat('for (dbr in dataBeginRepeat) {
+ #dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
+ load(paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
+ assign(paste0(dbr,"_edited"), dataFrame) }', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+ }
+
+
+
+ for (i in 1:nrow(indicator))
{
# i <- 1
indicator.type <- as.character(indicator[ i, c("type")])
@@ -143,51 +170,31 @@ kobo_create_indicators <- function(form = "form.xls") {
## Build and run the formula to insert the indicator in the right frame ###########################
indic.formula <- paste0(indicator.frame,"$",indicator.fullname," <- ",indicator.calculation )
- if (file.exists(paste0(mainDir,"/code/temp.R") )) file.remove(paste0(mainDir,"/code/temp.R"))
-
- cat(paste('### Script to generate indicator: ',indicator.labelReport,sep = ""), file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
- cat(paste('form <- "',form,'"',sep = ""), file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
- cat("mainDir <- kobo_getMainDirectory()", file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
- cat('form_tmp <- paste(mainDir, "data", form, sep = "/", collapse = "/")', file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
-
- cat('dataBeginRepeat <- kobo_get_begin_repeat(form)', file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
- cat('dataBeginRepeat <- dataBeginRepeat$names', file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
-
- cat('MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), encoding = "UTF-8", na.strings = "NA")', file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
-
- ## Check if there's a repeat - aka hierarchical structure in the dataset
- if (length(dataBeginRepeat) > 0) {
- cat('for (dbr in dataBeginRepeat) {
- dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
-
- assign(paste0(dbr,"_edited"), dataFrame) }', file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
- }
+ cat(paste('\n \n### Script to generate indicator: ',indicator.labelReport,sep = ""), file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+ cat(indic.formula, file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
- cat(indic.formula, file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
- cat("####", file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
## do a check on indicator variable type
indicator.type2 <- indicator.type
ifelse(indicator.type == "select_one", indicator.type2 <- "character", indicator.type2 <- indicator.type)
- cat(paste0(indicator.frame,"$",indicator.fullname," <- as.",indicator.type2,"(",indicator.frame,"$",indicator.fullname,")"), file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
- cat(paste0("str(",indicator.frame,"$",indicator.fullname,")"), file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
- cat(paste0("summary(",indicator.frame,"$",indicator.fullname,")"), file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
- cat('utils::write.csv(MainDataFrame, paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), row.names = FALSE, na = "")', file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
-
+ cat(paste0(indicator.frame,"$",indicator.fullname," <- as.",indicator.type2,"(",indicator.frame,"$",indicator.fullname,")"), file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+ cat(paste0("str(",indicator.frame,"$",indicator.fullname,")"), file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+ cat(paste0("summary(",indicator.frame,"$",indicator.fullname,")"), file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+
# if (indicator.frame == "MainDataFrame_edited") {
# }else{
# cat(paste('dbr<-"',indicator.frame,'"',sep = ""))
- # cat('utils::write.csv(eval(as.name(dbr)),paste(mainDir,"/data/",dbr,".csv",sep = ""), row.names = FALSE, na = "")', file = paste0(mainDir,"/code/temp.R") , sep = "\n", append = TRUE)
+ # cat('utils::write.csv(eval(as.name(dbr)),paste(mainDir,"/data/",dbr,".csv",sep = ""), row.names = FALSE, na = "")', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
# }
- source(paste0(mainDir,"/code/temp.R"))
- cat(paste0(i, "- Executed indicator: ", indicator.labelReport,"\n"))
- if (file.exists(paste0(mainDir,"/code/temp.R"))) file.remove(paste0(mainDir,"/code/temp.R"))
+ # source(paste0(mainDir,"/R/build_indicator.R"))
+ # cat(paste0(i, "- Executed indicator: ", indicator.labelReport,"\n"))
+ # if (file.exists(paste0(mainDir,"/R/build_indicator.R"))) file.remove(paste0(mainDir,"/R/build_indicator.R"))
## Insert the indicator in a temp dico frame to be appended to the full dico ######################
@@ -234,6 +241,11 @@ kobo_create_indicators <- function(form = "form.xls") {
dicotemp <- rbind(dicotemp,dicotemp1)
}
+ # cat('utils::write.csv(MainDataFrame, paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), row.names = FALSE, na = "")', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+ cat('save(MainDataFrame, file = paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+
+ source(paste0(mainDir,"/R/build_indicator.R"))
+
## Append indicators in the dico #############################################################################
## removing first line
@@ -409,7 +421,9 @@ kobo_create_indicators <- function(form = "form.xls") {
rm(dicotemp,dicotemp1, choices, choices2, choices3, dicotemp.choice)
- MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), encoding = "UTF-8", na.strings = "NA")
+ # MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), encoding = "UTF-8", na.strings = "NA")
+ load(paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))
+
## label Variables
cat("\n\n quick check on labeling\n")
MainDataFrame <- kobo_label(MainDataFrame , dico)
@@ -417,16 +431,21 @@ kobo_create_indicators <- function(form = "form.xls") {
## Check if there's a repeat - aka hierarchical structure in the dataset
if (length(dataBeginRepeat) > 0) {
for (dbr in dataBeginRepeat) {
- dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
+ #dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
+ load(paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
dataFrame <- kobo_label(dataFrame, dico)
- utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""), row.names = FALSE, na = "")
+ #utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""), row.names = FALSE, na = "")
+ save(dataFrame , file = paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
}
}
cat("\n\nWrite dico\n")
- utils::write.csv(dico, paste0(mainDir,"/data/dico_",form,".csv"), row.names = FALSE, na = "")
+ # utils::write.csv(dico, paste0(mainDir,"/data/dico_",form,".csv"), row.names = FALSE, na = "")
- utils::write.csv(MainDataFrame, paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), row.names = FALSE, na = "")
+ # utils::write.csv(MainDataFrame, paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), row.names = FALSE, na = "")
+
+ save(dico, file = paste0(mainDir,"/data/dico_",form,".rda"))
+ save(MainDataFrame, file = paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))
}
diff --git a/R/kobo_crunching_report.R b/R/kobo_crunching_report.R
index 6aecb5d..5c69a0e 100644
--- a/R/kobo_crunching_report.R
+++ b/R/kobo_crunching_report.R
@@ -3,8 +3,11 @@
#' @title Generate Data Crunching Report
#'
#' @description Generate crunching Report that contains all descriptive statistics, correlation analysis, tabulation and data visualization for variables and indicators.
+#' For disaggregation of variable indicate "facet","stak", "fill" or "dodge". for test of correlation on select_one variable use correlation = TRUE
+#'
#' @param form The full filename of the form to be accessed (xls or xlsx file).
-#' It is assumed that the form is stored in the data folder.
+#'
+#' It is assumed that the form is stored in the data-raw folder.
#' @param output The output format html or aspx if you need to upload on sharepoint), docx (to quickly cut non interesting vz and take note during data interpretation session), pptx (to quickly cut non interesting vz and persent during data interpretation session), Default is html
#' @param app The place where the function has been executed, the default is the console and the second option is the shiny app
#' @param render TRUE or FALSE - Tells wheter to only produce Rmd or to also knit it in the required output format. Default is TRUE. Usefull for testing as rending takes time.
@@ -48,14 +51,15 @@ kobo_crunching_report <- function(form = "form.xls",
configInfo <- kobo_get_config(form)
configInfo <- configInfo[!is.na(configInfo$name),]
mainDir <- kobo_getMainDirectory()
- form_tmp <- paste(mainDir, "data", form, sep = "/", collapse = "/")
+ #form_tmp <- paste(mainDir, "data", form, sep = "/", collapse = "/")
#library(koboloadeR)
### Load the data
cat("\n\n Loading data. It is assumed that the cleaning, weighting & re-encoding has been done previously \n")
- MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_encoded.csv",sep = ""), encoding = "UTF-8", na.strings = "")
-
+ #MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_encoded.csv",sep = ""), encoding = "UTF-8", na.strings = "")
+ load(paste(mainDir,"/data/MainDataFrame_encoded.rda",sep = ""))
+
# Form ##########################################
## Load form
@@ -65,8 +69,9 @@ kobo_crunching_report <- function(form = "form.xls",
## Generate dico to test here - in normal process - it has been done just before in kobo_load_data()
#kobo_dico(form)
- ## Load dictionnary
- dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
+ ## Load dictionary
+ #dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
+ load(paste0(mainDir,"/data/dico_",form,".rda"))
#rm(form)
@@ -87,7 +92,8 @@ kobo_crunching_report <- function(form = "form.xls",
## Check if there's a repeat - aka hierarchical structure in the dataset
if (length(dataBeginRepeat) > 0) {
for (dbr in dataBeginRepeat) {
- dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_encoded.csv",sep = ""),stringsAsFactors = F)
+ #dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_encoded.csv",sep = ""),stringsAsFactors = F)
+ load(paste(mainDir,"/data/",dbr,"_encoded.rda",sep = ""))
assign(dbr, kobo_label(dataFrame, dico))
if (app == "shiny") {
progress$set(message = paste("Labelling variables in",dbr,"File in progress..."))
@@ -138,8 +144,9 @@ kobo_crunching_report <- function(form = "form.xls",
names(reports)[1] <- "Report"
- utils::write.csv(reports, paste(mainDir,"/data/reports.csv",sep = ""), row.names = FALSE, na = "")
-
+ #utils::write.csv(reports, paste(mainDir,"/data/reports.csv",sep = ""), row.names = FALSE, na = "")
+ save(reports, file = paste(mainDir,"/data/reports.rda",sep = ""))
+
## For each Report: create a Rmd file -------
@@ -154,7 +161,7 @@ kobo_crunching_report <- function(form = "form.xls",
updateProgress()
}
cat(paste(i, " - Write chapter for ",as.character(reports[ i , 1]),"\n" ))
- report.name <- paste(mainDir, "/code/",i,"-", reportsname, "-report.Rmd", sep = "")
+ report.name <- paste(mainDir, "/vignettes/",i,"-", reportsname, "-report.Rmd", sep = "")
## TO DO : CHECK IF FILE EXIST - AND REQUEST USER TO DELETE BEFORE REGENERATING - SUGGESTING TO SAVE PREVIOUS UNDER NEW NAME
if (file.exists(report.name)) file.remove(report.name)
@@ -246,7 +253,7 @@ kobo_crunching_report <- function(form = "form.xls",
}
cat("mainDir <- getwd()", file = report.name , sep = "\n", append = TRUE)
- cat("mainDirroot <- substring(mainDir, 0 , nchar(mainDir) - 5)", file = report.name , sep = "\n", append = TRUE)
+ cat("mainDirroot <- substring(mainDir, 0 , nchar(mainDir) - 10)", file = report.name , sep = "\n", append = TRUE)
cat("using <- function(...) {", file = report.name , sep = "\n", append = TRUE)
cat("libs <- unlist(list(...))", file = report.name , sep = "\n", append = TRUE)
@@ -266,19 +273,23 @@ kobo_crunching_report <- function(form = "form.xls",
cat("## Provide below the name of the form in xsl form - format should be xls not xlsx", file = report.name , sep = "\n", append = TRUE)
cat(paste0("form <- \"",form,"\""), file = report.name , sep = "\n", append = TRUE)
- cat("dico <- utils::read.csv(paste0(mainDirroot,\"/data/dico_\",form,\".csv\"), encoding = \"UTF-8\", na.strings = \"\")", file = report.name , sep = "\n", append = TRUE)
-
+ #cat("dico <- utils::read.csv(paste0(mainDirroot,\"/data/dico_\",form,\".csv\"), encoding = \"UTF-8\", na.strings = \"\")", file = report.name , sep = "\n", append = TRUE)
+ cat("load(paste0(mainDirroot,\"/data/dico_\",form,\".rda\"))", file = report.name , sep = "\n", append = TRUE)
+
## TO DO: Use config file to load the different frame
- cat("MainDataFrame <- utils::read.csv(paste0(mainDirroot,\"/data/MainDataFrame_encoded.csv\"), encoding = \"UTF-8\", na.strings = \"\")", file = report.name , sep = "\n", append = TRUE)
-
+ #cat("MainDataFrame <- utils::read.csv(paste0(mainDirroot,\"/data/MainDataFrame_encoded.csv\"), encoding = \"UTF-8\", na.strings = \"\")", file = report.name , sep = "\n", append = TRUE)
+ cat("load(paste0(mainDirroot,\"/data/MainDataFrame_encoded.rda\"))", file = report.name , sep = "\n", append = TRUE)
+
## Check if there's a repeat - aka hierarchical structure in the dataset
if (length(dataBeginRepeat) > 0) {
for (dbr in dataBeginRepeat) {
- cat(paste(dbr, " <- utils::read.csv(paste0(mainDirroot,\"/data/",dbr,"_encoded.csv\"), encoding = \"UTF-8\", na.strings = \"\")", sep = ""), file = report.name , sep = "\n", append = TRUE)
+ #cat(paste(dbr, " <- utils::read.csv(paste0(mainDirroot,\"/data/",dbr,"_encoded.csv\"), encoding = \"UTF-8\", na.strings = \"\")", sep = ""), file = report.name , sep = "\n", append = TRUE)
+
+ cat(paste("load(paste0(mainDirroot,\"/data/",dbr,"_encoded.rda\"))", sep = ""), file = report.name , sep = "\n", append = TRUE)
}
}
@@ -2036,6 +2047,7 @@ kobo_crunching_report <- function(form = "form.xls",
#### Last Step Rendering reports ###################
+ cat(" Done!! Rmd are in the folder vignettes")
if (render == "FALSE") {
@@ -2050,7 +2062,8 @@ kobo_crunching_report <- function(form = "form.xls",
#rm(list = ls())
kobo_load_packages()
mainDir <- kobo_getMainDirectory()
- reports <- utils::read.csv(paste(mainDir,"/data/reports.csv",sep = ""), encoding = "UTF-8", na.strings = "")
+ #reports <- utils::read.csv(paste(mainDir,"/data/reports.csv",sep = ""), encoding = "UTF-8", na.strings = "")
+ load(paste(mainDir,"/data/reports.rda",sep = ""))
### Render now all reports
cat(" Render now reports... \n")
for (i in 1:nrow(reports)) {
@@ -2063,10 +2076,10 @@ kobo_crunching_report <- function(form = "form.xls",
cat(paste(i, " - Render word output report for ",reportsname))
mainDir <- kobo_getMainDirectory()
- rmarkdown::render(paste(mainDir,"/code/",i,"-", reportsname, "-report.Rmd", sep = ""))
+ rmarkdown::render(paste(mainDir,"/vignettes/",i,"-", reportsname, "-report.Rmd", sep = ""))
## Put the report in the out folder
mainDir <- kobo_getMainDirectory()
- file.rename(paste(mainDir,"/code/",i,"-", reportsname, "-report.docx", sep = ""), paste0(mainDir,"/out/crunching_reports/Crunching-report-",i,"-", reportsname,"-",Sys.Date(), "-report.docx"))
+ file.rename(paste(mainDir,"/vignettes/",i,"-", reportsname, "-report.docx", sep = ""), paste0(mainDir,"/out/crunching_reports/Crunching-report-",i,"-", reportsname,"-",Sys.Date(), "-report.docx"))
## Clean memory
gc()
@@ -2074,10 +2087,10 @@ kobo_crunching_report <- function(form = "form.xls",
cat(paste(i, " - Render html output report for ",reportsname))
mainDir <- kobo_getMainDirectory()
- rmarkdown::render(paste(mainDir,"/code/",i,"-", reportsname, "-report.Rmd", sep = ""))
+ rmarkdown::render(paste(mainDir,"/vignettes/",i,"-", reportsname, "-report.Rmd", sep = ""))
## Put the report in the out folder
mainDir <- kobo_getMainDirectory()
- file.rename(paste(mainDir,"/code/",i,"-", reportsname, "-report.html", sep = ""), paste0(mainDir,"/out/crunching_reports/Crunching-report-",i,"-", reportsname,"-",Sys.Date(), "-report.html"))
+ file.rename(paste(mainDir,"/vignettes/",i,"-", reportsname, "-report.html", sep = ""), paste0(mainDir,"/out/crunching_reports/Crunching-report-",i,"-", reportsname,"-",Sys.Date(), "-report.html"))
## Clean memory
gc()
@@ -2085,10 +2098,10 @@ kobo_crunching_report <- function(form = "form.xls",
cat(paste(i, " - Render aspx output - for sharepoint hosting - report for ",reportsname))
mainDir <- kobo_getMainDirectory()
- rmarkdown::render(paste(mainDir,"/code/",i,"-", reportsname, "-report.Rmd", sep = ""))
+ rmarkdown::render(paste(mainDir,"/vignettes/",i,"-", reportsname, "-report.Rmd", sep = ""))
## Put the report in the out folder
mainDir <- kobo_getMainDirectory()
- file.rename(paste(mainDir,"/code/",i,"-", reportsname, "-report.html", sep = ""), paste0(mainDir,"/out/crunching_reports/Crunching-report-",i,"-", reportsname,"-",Sys.Date(), "-report.aspx"))
+ file.rename(paste(mainDir,"/vignettes/",i,"-", reportsname, "-report.html", sep = ""), paste0(mainDir,"/out/crunching_reports/Crunching-report-",i,"-", reportsname,"-",Sys.Date(), "-report.aspx"))
## Clean memory
gc()
@@ -2096,10 +2109,10 @@ kobo_crunching_report <- function(form = "form.xls",
cat(paste(i, " - Render PowerPoint output report for ",reportsname))
mainDir <- kobo_getMainDirectory()
- rmarkdown::render(paste(mainDir,"/code/",i,"-", reportsname, "-report.Rmd", sep = ""))
+ rmarkdown::render(paste(mainDir,"/vignettes/",i,"-", reportsname, "-report.Rmd", sep = ""))
## Put the report in the out folder
mainDir <- kobo_getMainDirectory()
- file.rename(paste(mainDir,"/code/",i,"-", reportsname, "-report.pptx", sep = ""), paste0(mainDir,"/out/crunching_reports/Crunching-report-",i,"-", reportsname,"-",Sys.Date(), "-report.pptx"))
+ file.rename(paste(mainDir,"/vignettes/",i,"-", reportsname, "-report.pptx", sep = ""), paste0(mainDir,"/out/crunching_reports/Crunching-report-",i,"-", reportsname,"-",Sys.Date(), "-report.pptx"))
## Clean memory
gc()
}
diff --git a/R/kobo_dico.R b/R/kobo_dico.R
index d528f31..2ba0abb 100644
--- a/R/kobo_dico.R
+++ b/R/kobo_dico.R
@@ -28,7 +28,7 @@ kobo_dico <- function(form = "form.xls") {
# read the survey tab of ODK from
mainDir <- kobo_getMainDirectory()
- form_tmp <- paste(mainDir, "data", form, sep = "/", collapse = "/")
+ form_tmp <- paste(mainDir, "data-raw", form, sep = "/", collapse = "/")
### First review all questions from survey sheet #################################################
@@ -600,8 +600,8 @@ kobo_dico <- function(form = "form.xls") {
#} else { dico$type <- dico$type
# cat("Note that select_one & select_multiple questions within REPEAT part are converted to integer (results are summed up).\n")
- utils::write.csv(dico, paste0(mainDir,"/data/dico_",form,".csv"), row.names = FALSE, na = "")
-
+ #utils::write.csv(dico, paste0(mainDir,"/data/dico_",form,".csv"), row.names = FALSE, na = "")
+ save(dico, file = paste0(mainDir,"/data/dico_",form,".rda"))
# f_csv(dico)
# return(dico)
}
diff --git a/R/kobo_get_begin_repeat.R b/R/kobo_get_begin_repeat.R
index fa514e7..ab927ba 100644
--- a/R/kobo_get_begin_repeat.R
+++ b/R/kobo_get_begin_repeat.R
@@ -26,7 +26,7 @@
kobo_get_begin_repeat <- function(form = "form.xls") {
mainDir <- kobo_getMainDirectory()
- form_tmp <- paste(mainDir, "data", form, sep = "/", collapse = "/")
+ form_tmp <- paste(mainDir, "data-raw", form, sep = "/", collapse = "/")
### First review all questions from survey sheet #################################################
survey <- tryCatch({
diff --git a/R/kobo_get_config.R b/R/kobo_get_config.R
index b2df81d..4879a59 100644
--- a/R/kobo_get_config.R
+++ b/R/kobo_get_config.R
@@ -20,7 +20,7 @@
kobo_get_config <- function(form = "form.xls") {
mainDir <- kobo_getMainDirectory()
- form_tmp <- paste(mainDir, "data", form, sep = "/", collapse = "/")
+ form_tmp <- paste(mainDir, "data-raw", form, sep = "/", collapse = "/")
settings <- tryCatch({
as.data.frame(readxl::read_excel(form_tmp, sheet = "analysisSettings"), stringsAsFactors = FALSE)
}, error = function(err) {
diff --git a/R/kobo_load_data.R b/R/kobo_load_data.R
index 56dd8bc..2a494f9 100644
--- a/R/kobo_load_data.R
+++ b/R/kobo_load_data.R
@@ -53,16 +53,19 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
cat("\n\n\n Generate dictionnary from the xlsform \n\n\n\n")
mainDir <- kobo_getMainDirectory()
kobo_dico(form)
- dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
+ #dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
+ load(paste0(mainDir,"/data/dico_",form,".rda"))
## Load data #######################################################################
cat("\n\n\n Load original dataset \n\n\n\n")
-
- originalData <- utils::read.csv(configInfoOrigin[configInfoOrigin$name == "MainDataFrame", "path"], sep = ",", encoding = "UTF-8", na.strings = "")
+
+ originalData <- readr::read_csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == "MainDataFrame", "path"]))
+ # originalData <- utils::read.csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == "MainDataFrame", "path"]), sep = ",", encoding = "UTF-8", na.strings = "")
if (ncol(originalData) == 1) {
cat("seems like you file use ; rather , variable separator.... \n")
- originalData <- utils::read.csv(configInfoOrigin[configInfoOrigin$name == "MainDataFrame", "path"], sep = ";", encoding = "UTF-8", na.strings = "")
+ originalData <- readr::read_csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == "MainDataFrame", "path"]))
+ # originalData <- utils::read.csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == "MainDataFrame", "path"]), sep = ";", encoding = "UTF-8", na.strings = "")
}
## Check to split select_multiple if data is extracted from ODK ###################
@@ -105,7 +108,7 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
}
path <- configInfoOrigin[configInfoOrigin$name == "weights_info", "path"]
- weight <- utils::read.csv(path,stringsAsFactors = F)
+ weight <- utils::read.csv(paste0(mainDir, "/data-raw/",path),stringsAsFactors = F)
variableName <- configInfoOrigin[configInfoOrigin$name == "variable_name", "value"]
@@ -133,8 +136,9 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
cat("\n\n Write backup before encoding or indicators calculation..\n")
- utils::write.csv(MainDataFrame,paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), row.names = FALSE, na = "")
-
+ #utils::write.csv(MainDataFrame,paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), row.names = FALSE, na = "")
+ save(MainDataFrame, file = paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))
+
## load all required data files #########################################
@@ -168,7 +172,8 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
}
# dbr <- levelsOfDF$name[1]
cat("\n\nloading",dbr,"file ..\n")
- dataFrame <- utils::read.csv(configInfoOrigin[configInfoOrigin$name == dbr,"path"], stringsAsFactors = F)
+ dataFrame <- readr::read_csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == dbr,"path"]))
+ # dataFrame <- utils::read.csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == dbr,"path"]), stringsAsFactors = F)
if (app == "shiny") {
progress$set(message = paste("Splitting",dbr,"file in progress..."))
@@ -205,7 +210,8 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
cat("\n\n Saving ",dbr,"file as _edited..\n")
- utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""), row.names = FALSE, na = "")
+ # utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""), row.names = FALSE, na = "")
+ save(dataFrame, file = paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
# }
#
@@ -230,10 +236,12 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
## Case MainDataFrame called household
if (parent %in% c("household", "MainDataFrame")) {
- parentDf <- utils::read.csv(paste(mainDir,"/data/",parent,"_edited.csv",sep = ""),stringsAsFactors = F)
+ # parentDf <- utils::read.csv(paste(mainDir,"/data/",parent,"_edited.csv",sep = ""),stringsAsFactors = F)
+ load(paste(mainDir,"/data/",parent,"_edited.rda",sep = ""))
}else{
- parentDf <- utils::read.csv(paste(mainDir,"/data/",parent,"_edited.csv",sep = ""),stringsAsFactors = F)
+ #parentDf <- utils::read.csv(paste(mainDir,"/data/",parent,"_edited.csv",sep = ""),stringsAsFactors = F)
+ load(paste(mainDir,"/data/",parent,"_edited.rda",sep = ""))
}
@@ -275,7 +283,8 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
}
cat("\n\n Saving edited version of ", dbr, " ...\n")
- utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""), row.names = FALSE, na = "")
+ #utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""), row.names = FALSE, na = "")
+ save(dataFrame, file = paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
}
@@ -297,10 +306,13 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
}
-
- dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
-
- MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), encoding = "UTF-8", na.strings = "NA")
+
+ load(paste(mainDir,"/data/dico_",form,".rda",sep = ""))
+
+ load(paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))
+
+ #dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
+ #MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), encoding = "UTF-8", na.strings = "NA")
## Re-encoding data now based on the dictionnary -- ##############################
@@ -316,9 +328,14 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
## loading nested frame
for (dbr in levelsOfDF$name) {
- dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
+
+ #dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
+ load(paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
+
dataFrame <- kobo_encode(dataFrame, dico)
- utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_encoded.csv",sep = ""), row.names = FALSE, na = "")
+
+ #utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_encoded.csv",sep = ""), row.names = FALSE, na = "")
+ save(dataFrame, file = paste(mainDir,"/data/",dbr,"_encoded.rda",sep = ""))
cat("\n\nRe-encode",dbr,"..\n")
}
@@ -326,7 +343,8 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
updateProgress()
}
- utils::write.csv(MainDataFrame,paste(mainDir,"/data/MainDataFrame_encoded.csv",sep = ""), row.names = FALSE, na = "")
+ #utils::write.csv(MainDataFrame,paste(mainDir,"/data/MainDataFrame_encoded.csv",sep = ""), row.names = FALSE, na = "")
+ save(MainDataFrame, file = paste(mainDir,"/data/MainDataFrame_encoded.rda",sep = ""))
return(TRUE)
}, error = function(err) {
diff --git a/R/kobo_projectinit.R b/R/kobo_projectinit.R
index d56225e..11834d6 100644
--- a/R/kobo_projectinit.R
+++ b/R/kobo_projectinit.R
@@ -20,22 +20,42 @@
kobo_projectinit <- function() {
tryCatch({
mainDir <- kobo_getMainDirectory()
-
+
cat("Let's create various standard folders and copy some analysis script\n")
-
-
+ destfile = paste0(mainDir,"/DESCRIPTION")
+ if (!file.exists(destfile)) {
+ fileConn <- file(destfile)
+ writeLines(c("Package: analysispackage",
+ "Type: Package",
+ "Title: My Analysis package",
+ "Version: 0.1.0",
+ "Author: me",
+ "Maintainer: me ",
+ "Description: ",
+ "Encoding: UTF-8",
+ "RoxygenNote: 7.1.1"), fileConn)
+ close(fileConn)
+ }
+
+ destfile = paste0(mainDir,"/.Rbuildignore")
+ if (!file.exists(destfile)) {
+ fileConn <- file(destfile)
+ writeLines(c("usethis::use_data_raw()"), fileConn)
+ close(fileConn)
+ }
+
## doc folder creation ####
- subDir <- "doc"
+ subDir <- "docs"
if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
- cat("doc exists in mainDir and is a directory.\n")
+ cat("docs exists in mainDir and is a directory.\n")
} else if (file.exists(paste(mainDir, subDir, sep = "/", collapse = "/"))) {
cat("doc directory exists in your project directory but is a file.\n")
# you will probably want to handle this separately
} else {
- cat("doc directory does not exist in your project directory - creating now!\n ")
+ cat("docs directory does not exist in your project directory - creating now!\n ")
dir.create(file.path(mainDir, subDir))
}
-
+
if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
# By this point, the directory either existed or has been successfully created
setwd(file.path(mainDir, subDir))
@@ -43,16 +63,42 @@ kobo_projectinit <- function() {
cat("")
# Handle this error as appropriate
}
- destfile = paste0(mainDir,"/doc/README.md")
+ destfile = paste0(mainDir,"/docs/README.md")
if (!file.exists(destfile)) {
fileConn <- file(destfile)
writeLines(c("### This folder is where your user name, password and config are stored"), fileConn)
close(fileConn)
}
-
-
- ## Code folder creation ####
- subDir <- "code"
+
+ ## man folder creation ####
+ subDir <- "man"
+ if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
+ cat("man exists in mainDir and is a directory.\n")
+ } else if (file.exists(paste(mainDir, subDir, sep = "/", collapse = "/"))) {
+ cat("man directory exists in your project directory but is a file.\n")
+ # you will probably want to handle this separately
+ } else {
+ cat("man directory does not exist in your project directory - creating now!\n ")
+ dir.create(file.path(mainDir, subDir))
+ }
+
+ if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
+ # By this point, the directory either existed or has been successfully created
+ setwd(file.path(mainDir, subDir))
+ } else {
+ cat("")
+ # Handle this error as appropriate
+ }
+ destfile = paste0(mainDir,"/man/README.md")
+ if (!file.exists(destfile)) {
+ fileConn <- file(destfile)
+ writeLines(c("### This folder is where the project documentation will be build"), fileConn)
+ close(fileConn)
+ }
+
+
+ ## R folder creation ####
+ subDir <- "R"
if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
cat("Code exists in mainDir and is a directory.\n")
} else if (file.exists(paste(mainDir, subDir, sep = "/", collapse = "/"))) {
@@ -62,7 +108,7 @@ kobo_projectinit <- function() {
cat("Code directory does not exist in your project directory - creating now!\n ")
dir.create(file.path(mainDir, subDir))
}
-
+
if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
# By this point, the directory either existed or has been successfully created
setwd(file.path(mainDir, subDir))
@@ -70,15 +116,15 @@ kobo_projectinit <- function() {
cat("")
# Handle this error as appropriate
}
- destfile = paste0(mainDir,"/code/README.md")
+ destfile = paste0(mainDir,"/R/README.md")
if (!file.exists(destfile)) {
fileConn <- file(destfile)
writeLines(c("### This folder is where analysis scripts are saved"), fileConn)
close(fileConn)
}
-
+
## Need to test if we have multiple .libPaths()
-
+
path <- as.data.frame(.libPaths())
if (nrow(path) == 1) {path_correct <- as.character(path[1,1])
} else {cat("You have multiple library path! \n")
@@ -86,7 +132,7 @@ kobo_projectinit <- function() {
path_correct <- as.character(path[1,1])
} else {path_correct <- as.character(path[2,1])}
}
-
+
# subsubDir <- "script"
# if (file.exists(paste(mainDir, subDir,"/",subsubDir,"/", sep = "/", collapse = "/"))) {
# cat("script exists in subDir and is a directory.\n")
@@ -97,81 +143,17 @@ kobo_projectinit <- function() {
# cat("script directory does not exist in your project directory - creating now!\n ")
# dir.create(file.path(mainDir, subDir,subsubDir))
# }
-
- destfile = paste0(mainDir,"/code/run-analysis.R")
+
+ destfile = paste0(mainDir,"/R/run-analysis.R")
if (!file.exists(destfile)) {
file.copy(paste(path_correct,"/koboloadeR/script/run-analysis.R",sep = ""), destfile)
}else{
file.remove(destfile)
file.copy(paste(path_correct,"/koboloadeR/script/run-analysis.R",sep = ""), destfile)
}
-
-
- #
- # destfile = paste0(mainDir,"/code/0-theme.R")
- # if (!file.exists(destfile)) {
- # file.copy(paste(path_correct,"/koboloadeR/script/0-theme.R", sep = ""), destfile)
- # }
- #
- # destfile = paste0(mainDir,"/code/0-config.R")
- # if (!file.exists(destfile)) {
- # file.copy(paste(path_correct,"/koboloadeR/script/0-config.R", sep = ""), destfile)
- # }
- #
- # destfile = paste0(mainDir,"/code/1-loaddata.R")
- # if (!file.exists(destfile)) {
- # file.copy(paste(path_correct,"/koboloadeR/script/1-loaddata.R", sep = ""), destfile)
- # }
- #
- # # destfile = paste0(mainDir,"/code/2-create-graph.R")
- # # if (!file.exists(destfile)) {
- # # file.copy(paste(path_correct,"/koboloadeR/script/2-create-graph.R", sep = ""), destfile)
- # # }
- #
- # destfile = paste0(mainDir,"/code/2-create-indicators.R")
- # if (!file.exists(destfile)) {
- # file.copy(paste(path_correct,"/koboloadeR/script/2-create-indicators.R", sep = ""), destfile)
- # }
- #
- # destfile = paste0(mainDir,"/code/3-generate-report.R")
- # if (!file.exists(destfile)) {
- # file.copy(paste(path_correct,"/koboloadeR/script/3-generate-report.R", sep = ""), destfile)
- # }
- #
- # destfile = paste0(mainDir,"/code/4-generate-prediction.R")
- # if (!file.exists(destfile)) {
- # file.copy(paste(path_correct,"/koboloadeR/script/4-generate-prediction.R", sep = ""), destfile)
- # }
- #
- # destfile = paste0(mainDir,"/code/report.Rmd")
- # if (!file.exists(destfile)) {
- # file.copy(paste(path_correct,"/koboloadeR/script/report.Rmd", sep = ""), destfile)
- # }
-
- destfile = paste0(mainDir,"/code/templateUNHCR.pptx")
- if (!file.exists(destfile)) {
- file.copy(paste(path_correct,"/koboloadeR/script/templateUNHCR.pptx", sep = ""), destfile)
- }
-
-
- destfile = paste0(mainDir,"/code/style-unhcr-portrait.docx")
- if (!file.exists(destfile)) {
- file.copy(paste(path_correct,"/koboloadeR/script/style-unhcr-portrait.docx", sep = ""), destfile)
- }
-
- destfile = paste0(mainDir,"/code/report_template.docx")
- if (!file.exists(destfile)) {
- file.copy(paste(path_correct,"/koboloadeR/script/report_template.docx", sep = ""), destfile)
- }
-
- # destfile = paste0(mainDir,"/code/XLSform_template.xlsx")
- # if (!file.exists(destfile)) {
- # file.copy(paste(path_correct,"/koboloadeR/script/XLSform_template.xlsx", sep = ""), destfile)
- # }
- #
-
+
## shiny_app Subfolder creation ####
-
+
subsubDir <- "shiny_app"
if (file.exists(paste(mainDir, subDir,"/",subsubDir,"/", sep = "/", collapse = "/"))) {
cat("shiny_app exists in subDir and is a directory.\n")
@@ -182,21 +164,21 @@ kobo_projectinit <- function() {
cat("shiny_app directory does not exist in your project directory - creating now!\n ")
dir.create(file.path(mainDir, subDir,subsubDir))
}
-
- destfile = paste0(mainDir,"/code/shiny_app/app_koboloadeR.R")
+
+ destfile = paste0(mainDir,"/R/shiny_app/app_koboloadeR.R")
file.copy(paste(path_correct,"/koboloadeR/shiny_app/app_koboloadeR.R", sep = ""), destfile, overwrite = TRUE)
-
- destfile = paste0(mainDir,"/code/shiny_app/app_sampling.R")
+
+ destfile = paste0(mainDir,"/R/shiny_app/app_sampling.R")
file.copy(paste(path_correct,"/koboloadeR/shiny_app/app_sampling.R", sep = ""), destfile, overwrite = TRUE)
-
- destfile = paste0(mainDir,"/code/shiny_app/app_dataviewer.R")
+
+ destfile = paste0(mainDir,"/R/shiny_app/app_dataviewer.R")
file.copy(paste(path_correct,"/koboloadeR/shiny_app/app_dataviewer.R", sep = ""), destfile, overwrite = TRUE)
-
- destfile = paste0(mainDir,"/code/shiny_app/app_main_koboloadeR.R")
+
+ destfile = paste0(mainDir,"/R/shiny_app/app_main_koboloadeR.R")
file.copy(paste(path_correct,"/koboloadeR/shiny_app/app_main_koboloadeR.R", sep = ""), destfile, overwrite = TRUE)
-
+
## WWW sub subfolder creation ####
-
+
subsubsubDir <- "www"
if (file.exists(paste(mainDir, subDir,"/",subsubDir,"/",subsubsubDir, "/",sep = "/", collapse = "/"))) {
cat("www exists in subDir and is a directory.\n")
@@ -207,49 +189,100 @@ kobo_projectinit <- function() {
cat("www directory does not exist in your project directory - creating now!\n ")
dir.create(file.path(mainDir, subDir,subsubDir,subsubsubDir))
}
-
- destfile = paste0(mainDir,"/code/shiny_app/www/exportformat.png")
+
+ destfile = paste0(mainDir,"/R/shiny_app/www/exportformat.png")
if (!file.exists(destfile)) {
file.copy(paste(path_correct,"/koboloadeR/shiny_app/www/exportformat.png",sep = ""), destfile)
}else{
file.remove(destfile)
file.copy(paste(path_correct,"/koboloadeR/shiny_app/www/exportformat.png",sep = ""), destfile)
}
-
- destfile = paste0(mainDir,"/code/shiny_app/www/bootstrap.min.css")
+
+ destfile = paste0(mainDir,"/R/shiny_app/www/bootstrap.min.css")
if (!file.exists(destfile)) {
file.copy(paste(path_correct,"/koboloadeR/shiny_app/www/bootstrap.min.css",sep = ""), destfile)
}else{
file.remove(destfile)
file.copy(paste(path_correct,"/koboloadeR/shiny_app/www/bootstrap.min.css",sep = ""), destfile)
}
-
- destfile = paste0(mainDir,"/code/shiny_app/www/style.css")
+
+ destfile = paste0(mainDir,"/R/shiny_app/www/style.css")
if (!file.exists(destfile)) {
file.copy(paste(path_correct,"/koboloadeR/shiny_app/www/style.css",sep = ""), destfile)
}else{
file.remove(destfile)
file.copy(paste(path_correct,"/koboloadeR/shiny_app/www/style.css",sep = ""), destfile)
}
-
- destfile = paste0(mainDir,"/code/shiny_app/www/background-lines.png")
+
+ destfile = paste0(mainDir,"/R/shiny_app/www/background-lines.png")
if (!file.exists(destfile)) {
file.copy(paste(path_correct,"/koboloadeR/shiny_app/www/background-lines.png",sep = ""), destfile)
}else{
file.remove(destfile)
file.copy(paste(path_correct,"/koboloadeR/shiny_app/www/background-lines.png",sep = ""), destfile)
}
-
- destfile = paste0(mainDir,"/code/shiny_app/www/analysis-plan-configuration.png")
+
+ destfile = paste0(mainDir,"/R/shiny_app/www/analysis-plan-configuration.png")
if (!file.exists(destfile)) {
file.copy(paste(path_correct,"/koboloadeR/shiny_app/www/analysis-plan-configuration.png",sep = ""), destfile)
}else{
file.remove(destfile)
file.copy(paste(path_correct,"/koboloadeR/shiny_app/www/analysis-plan-configuration.png",sep = ""), destfile)
}
-
+
+
+ ## vignettes folder creation ####
+ subDir <- "vignettes"
+ if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
+ cat("Code exists in mainDir and is a directory.\n")
+ } else if (file.exists(paste(mainDir, subDir, sep = "/", collapse = "/"))) {
+ cat("Code directory exists in your project directory but is a file.\n")
+ # you will probably want to handle this separately
+ } else {
+ cat("Code directory does not exist in your project directory - creating now!\n ")
+ dir.create(file.path(mainDir, subDir))
+ }
+
+ if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
+ # By this point, the directory either existed or has been successfully created
+ setwd(file.path(mainDir, subDir))
+ } else {
+ cat("")
+ # Handle this error as appropriate
+ }
+ destfile = paste0(mainDir,"/vignettes/README.md")
+ if (!file.exists(destfile)) {
+ fileConn <- file(destfile)
+ writeLines(c("### This folder is where reports notbook will be kept - it follows standard R package structure"), fileConn)
+ close(fileConn)
+ }
+
+
+ destfile = paste0(mainDir,"/vignettes/templateUNHCR.pptx")
+ if (!file.exists(destfile)) {
+ file.copy(paste(path_correct,"/koboloadeR/script/templateUNHCR.pptx", sep = ""), destfile)
+ }
+
+
+ destfile = paste0(mainDir,"/vignettes/style-unhcr-portrait.docx")
+ if (!file.exists(destfile)) {
+ file.copy(paste(path_correct,"/koboloadeR/script/style-unhcr-portrait.docx", sep = ""), destfile)
+ }
+
+ destfile = paste0(mainDir,"/vignettes/report_template.docx")
+ if (!file.exists(destfile)) {
+ file.copy(paste(path_correct,"/koboloadeR/script/report_template.docx", sep = ""), destfile)
+ }
+
+ # destfile = paste0(mainDir,"/code/XLSform_template.xlsx")
+ # if (!file.exists(destfile)) {
+ # file.copy(paste(path_correct,"/koboloadeR/script/XLSform_template.xlsx", sep = ""), destfile)
+ # }
+ #
+
+
## HTML Template ####
-
+
subsubDir <- "css"
if (file.exists(paste(mainDir, subDir,"/",subsubDir,"/", sep = "/", collapse = "/"))) {
cat("css exists in subDir and is a directory.\n")
@@ -260,23 +293,23 @@ kobo_projectinit <- function() {
cat("css directory does not exist in your project directory - creating now!\n ")
dir.create(file.path(mainDir, subDir,subsubDir))
}
-
- destfile = paste0(mainDir,"/code/css/bootstrap.css")
+
+ destfile = paste0(mainDir,"/vignettes/css/bootstrap.css")
file.copy(paste(path_correct,"/koboloadeR/css/bootstrap.css", sep = ""), destfile, overwrite = TRUE)
-
- destfile = paste0(mainDir,"/code/css/unhcr-bootstrap.css")
+
+ destfile = paste0(mainDir,"/vignettes/css/unhcr-bootstrap.css")
file.copy(paste(path_correct,"/koboloadeR/css/unhcr-bootstrap.css", sep = ""), destfile, overwrite = TRUE)
-
- destfile = paste0(mainDir,"/code/css/style.css")
+
+ destfile = paste0(mainDir,"/vignettes/css/style.css")
file.copy(paste(path_correct,"/koboloadeR/css/style.css", sep = ""), destfile, overwrite = TRUE)
-
- destfile = paste0(mainDir,"/code/css/unhcr-header.css")
+
+ destfile = paste0(mainDir,"/vignettes/css/unhcr-header.css")
file.copy(paste(path_correct,"/koboloadeR/css/unhcr-header.css", sep = ""), destfile, overwrite = TRUE)
-
- destfile = paste0(mainDir,"/code/css/header.html")
+
+ destfile = paste0(mainDir,"/vignettes/css/header.html")
file.copy(paste(path_correct,"/koboloadeR/css/header.html", sep = ""), destfile, overwrite = TRUE)
-
-
+
+
## fonts sub subfolder creation ####
subsubsubDir <- "fonts"
if (file.exists(paste(mainDir, subDir,"/",subsubDir,"/",subsubsubDir, "/",sep = "/", collapse = "/"))) {
@@ -288,27 +321,27 @@ kobo_projectinit <- function() {
cat("fonts directory does not exist in your project directory - creating now!\n ")
dir.create(file.path(mainDir, subDir,subsubDir,subsubsubDir))
}
- destfile = paste0(mainDir,"/code/css/fonts/glyphicons-halflings-regular.eot")
+ destfile = paste0(mainDir,"/vignettes/css/fonts/glyphicons-halflings-regular.eot")
if (!file.exists(destfile)) {
file.copy(paste(path_correct,"/koboloadeR/css/fonts/glyphicons-halflings-regular.eot",sep = ""), destfile)
}
- destfile = paste0(mainDir,"/code/css/fonts/glyphicons-halflings-regular.svg")
+ destfile = paste0(mainDir,"/vignettes/css/fonts/glyphicons-halflings-regular.svg")
if (!file.exists(destfile)) {
file.copy(paste(path_correct,"/koboloadeR/css/fonts/glyphicons-halflings-regular.svg",sep = ""), destfile)
}
- destfile = paste0(mainDir,"/code/css/fonts/glyphicons-halflings-regular.ttf")
+ destfile = paste0(mainDir,"/vignettes/css/fonts/glyphicons-halflings-regular.ttf")
if (!file.exists(destfile)) {
file.copy(paste(path_correct,"/koboloadeR/css/fonts/glyphicons-halflings-regular.ttf",sep = ""), destfile)
}
- destfile = paste0(mainDir,"/code/css/fonts/glyphicons-halflings-regular.woff")
+ destfile = paste0(mainDir,"/vignettes/css/fonts/glyphicons-halflings-regular.woff")
if (!file.exists(destfile)) {
file.copy(paste(path_correct,"/koboloadeR/css/fonts/glyphicons-halflings-regular.woff",sep = ""), destfile)
}
- destfile = paste0(mainDir,"/code/css/fonts/glyphicons-halflings-regular.woff2")
+ destfile = paste0(mainDir,"/vignettes/css/fonts/glyphicons-halflings-regular.woff2")
if (!file.exists(destfile)) {
file.copy(paste(path_correct,"/koboloadeR/css/fonts/glyphicons-halflings-regular.woff2",sep = ""), destfile)
}
-
+
## image sub subfolder creation ####
subsubsubDir <- "image"
if (file.exists(paste(mainDir, subDir,"/",subsubDir,"/",subsubsubDir, "/",sep = "/", collapse = "/"))) {
@@ -320,44 +353,43 @@ kobo_projectinit <- function() {
cat("image directory does not exist in your project directory - creating now!\n ")
dir.create(file.path(mainDir, subDir,subsubDir,subsubsubDir))
}
-
- destfile = paste0(mainDir,"/code/css/image/decoded.png")
+
+ destfile = paste0(mainDir,"/vignettes/css/image/decoded.png")
if (!file.exists(destfile)) { file.copy(paste(path_correct,"/koboloadeR/css/image/decoded.png",sep = ""), destfile)}
-
- destfile = paste0(mainDir,"/code/css/image/icon-mbl-nav-arrow.png")
+
+ destfile = paste0(mainDir,"/vignettes/css/image/icon-mbl-nav-arrow.png")
if (!file.exists(destfile)) { file.copy(paste(path_correct,"/koboloadeR/css/image/icon-mbl-nav-arrow.png",sep = ""), destfile)}
-
- destfile = paste0(mainDir,"/code/css/image/icon-global-search.png")
+
+ destfile = paste0(mainDir,"/vignettes/css/image/icon-global-search.png")
if (!file.exists(destfile)) { file.copy(paste(path_correct,"/koboloadeR/css/image/icon-global-search.png",sep = ""), destfile)}
-
- destfile = paste0(mainDir,"/code/css/image/icon-global-search.png")
+
+ destfile = paste0(mainDir,"/vignettes/css/image/icon-global-search.png")
if (!file.exists(destfile)) { file.copy(paste(path_correct,"/koboloadeR/css/image/icon-global-search.png",sep = ""), destfile)}
-
- destfile = paste0(mainDir,"/code/css/image/icons-tool.png")
+
+ destfile = paste0(mainDir,"/vignettes/css/image/icons-tool.png")
if (!file.exists(destfile)) { file.copy(paste(path_correct,"/koboloadeR/css/image/icons-tool.png",sep = ""), destfile)}
-
- destfile = paste0(mainDir,"/code/css/image/icons-key.png")
+
+ destfile = paste0(mainDir,"/vignettes/css/image/icons-key.png")
if (!file.exists(destfile)) { file.copy(paste(path_correct,"/koboloadeR/css/image/icons-key.png",sep = ""), destfile)}
-
- destfile = paste0(mainDir,"/code/css/image/icon-help.png")
+
+ destfile = paste0(mainDir,"/vignettes/css/image/icon-help.png")
if (!file.exists(destfile)) { file.copy(paste(path_correct,"/koboloadeR/css/image/icon-help.png",sep = ""), destfile)}
-
- destfile = paste0(mainDir,"/code/css/image/icon-close.png")
+
+ destfile = paste0(mainDir,"/vignettes/css/image/icon-close.png")
if (!file.exists(destfile)) { file.copy(paste(path_correct,"/koboloadeR/css/image/icon-close.png",sep = ""), destfile)}
-
- destfile = paste0(mainDir,"/code/css/image/icon-burger.png")
+
+ destfile = paste0(mainDir,"/vignettes/css/image/icon-burger.png")
if (!file.exists(destfile)) { file.copy(paste(path_correct,"/koboloadeR/css/image/icon-burger.png",sep = ""), destfile)}
-
- destfile = paste0(mainDir,"/code/css/image/unhcr-logo.png")
+
+ destfile = paste0(mainDir,"/vignettes/css/image/unhcr-logo.png")
if (!file.exists(destfile)) { file.copy(paste(path_correct,"/koboloadeR/css/image/unhcr-logo.png",sep = ""), destfile)}
-
- destfile = paste0(mainDir,"/code/css/image/icon-search.png")
+
+ destfile = paste0(mainDir,"/vignettes/css/image/icon-search.png")
if (!file.exists(destfile)) { file.copy(paste(path_correct,"/koboloadeR/css/image/icon-search.png",sep = ""), destfile)}
-
-
+
## Data folder creation ####
subDir <- "data"
-
+
if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
cat("Data exists in mainDir and is a directory.\n")
} else if (file.exists(paste(mainDir, subDir, sep = "/", collapse = "/"))) {
@@ -367,7 +399,7 @@ kobo_projectinit <- function() {
cat("Data directory does not exist in your project directory - creating now! \n")
dir.create(file.path(mainDir, subDir))
}
-
+
if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
# By this point, the directory either existed or has been successfully created
setwd(file.path(mainDir, subDir))
@@ -376,6 +408,38 @@ kobo_projectinit <- function() {
# Handle this error as appropriate
}
destfile = paste0(mainDir,"/data/README.md")
+ if (!file.exists(destfile)) {
+ fileConn <- file(destfile)
+ writeLines(c("### This folder is the one where are stored data in Rdata format once it's been processed by kobo_load_data",
+ "# BE CAREFUL: DO NOT SHARE PROTECTION SENSITIVE DATA ON GITHUB!",
+ "",
+ "This project is only to keep track of your analysis workflow"), fileConn)
+ close(fileConn)
+ }
+
+
+
+ ## Data-raw folder creation ####
+ subDir <- "data-raw"
+
+ if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
+ cat("data-raw exists in mainDir and is a directory.\n")
+ } else if (file.exists(paste(mainDir, subDir, sep = "/", collapse = "/"))) {
+ cat("data-raw directory exists in your project directory.\n")
+ # you will probably want to handle this separately
+ } else {
+ cat("data-raw directory does not exist in your project directory - creating now! \n")
+ dir.create(file.path(mainDir, subDir))
+ }
+
+ if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
+ # By this point, the directory either existed or has been successfully created
+ setwd(file.path(mainDir, subDir))
+ } else {
+ cat("")
+ # Handle this error as appropriate
+ }
+ destfile = paste0(mainDir,"/data-raw/README.md")
if (!file.exists(destfile)) {
fileConn <- file(destfile)
writeLines(c("### This folder is the one where are stored data in CSV format, the form in XLS format and geodata in SHP format",
@@ -384,15 +448,15 @@ kobo_projectinit <- function() {
"This project is only to keep track of your analysis workflow"), fileConn)
close(fileConn)
}
-
- destfile = paste0(mainDir,"/data/form.xls")
- if (!file.exists(destfile)) {
- file.copy(paste(path_correct,"/koboloadeR/script/form.xls", sep = ""), destfile)
- }
-
-
+
+ destfile = paste0(mainDir,"/data-raw/form.xls")
+ if (!file.exists(destfile)) {
+ file.copy(paste(path_correct,"/koboloadeR/script/form.xls", sep = ""), destfile)
+ }
+
+
## Out folder creation ####
-
+
subDir <- "out"
if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
cat("Out directory exists in your project directory and is a directory.\n")
@@ -403,7 +467,7 @@ kobo_projectinit <- function() {
cat("Out directory does not exist in your project directory - creating now!\n ")
dir.create(file.path(mainDir, subDir))
}
-
+
if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
# By this point, the directory either existed or has been successfully created
setwd(file.path(mainDir, subDir))
@@ -418,10 +482,10 @@ kobo_projectinit <- function() {
"# BE CAREFUL: DO NOT SHARE PROTECTION SENSITIVE DATA ON GITHUB!"), fileConn)
close(fileConn)
}
-
-
+
+
## Out subfolder creation ####
-
+
mainDirectory <- paste0(mainDir,"/out")
# subDir <- "/bar_multi"
# if (file.exists(paste(mainDirectory, subDir, "/", sep = "/", collapse = "/"))) {
@@ -469,8 +533,8 @@ kobo_projectinit <- function() {
# cat("disagg_one directory does not exist in your out directory - creating now!\n ")
# dir.create(file.path(mainDirectory, subDir))
# }
-
-
+
+
mainDirectory <- paste0(mainDir,"/out")
subDir <- "/crunching_reports"
if (file.exists(paste(mainDirectory, subDir, "/", sep = "/", collapse = "/"))) {
@@ -482,7 +546,7 @@ kobo_projectinit <- function() {
cat("crunching_reports directory does not exist in your out directory - creating now!\n ")
dir.create(file.path(mainDirectory, subDir))
}
-
+
mainDirectory <- paste0(mainDir,"/out")
subDir <- "/cluster_reports"
if (file.exists(paste(mainDirectory, subDir, "/", sep = "/", collapse = "/"))) {
@@ -494,7 +558,7 @@ kobo_projectinit <- function() {
cat("cluster_reports directory does not exist in your out directory - creating now!\n ")
dir.create(file.path(mainDirectory, subDir))
}
-
+
mainDirectory <- paste0(mainDir,"/out")
subDir <- "/anonymisation_reports"
if (file.exists(paste(mainDirectory, subDir, "/", sep = "/", collapse = "/"))) {
@@ -506,24 +570,24 @@ kobo_projectinit <- function() {
cat("anonymisation_reports directory does not exist in your out directory - creating now!\n ")
dir.create(file.path(mainDirectory, subDir))
}
-
-
- mainDirectory <- paste0(mainDir,"/out")
- subDir <- "/ddi"
- if (file.exists(paste(mainDirectory, subDir, "/", sep = "/", collapse = "/"))) {
- cat("ddi directory exists in out directory and is a directory.\n")
- } else if (file.exists(paste(mainDirectory, subDir, sep = "/", collapse = "/"))) {
- cat("ddi directory exists in your out directory.\n")
- # you will probably want to handle this separately
- } else {
- cat("ddi directory does not exist in your out directory - creating now!\n ")
- dir.create(file.path(mainDirectory, subDir))
- }
-
+
+
+ # mainDirectory <- paste0(mainDir,"/out")
+ # subDir <- "/ddi"
+ # if (file.exists(paste(mainDirectory, subDir, "/", sep = "/", collapse = "/"))) {
+ # cat("ddi directory exists in out directory and is a directory.\n")
+ # } else if (file.exists(paste(mainDirectory, subDir, sep = "/", collapse = "/"))) {
+ # cat("ddi directory exists in your out directory.\n")
+ # # you will probably want to handle this separately
+ # } else {
+ # cat("ddi directory does not exist in your out directory - creating now!\n ")
+ # dir.create(file.path(mainDirectory, subDir))
+ # }
+
## reset the correct Working directory
setwd(mainDir)
cat("Please open now the file called run-analysis.R within the ++code++ folder, configure the xlsform and get your dataset. \n ")
-
+
kobo_load_packages() # Make sure that all the packages necessary are loaded.
}, error = function(err) {
print("kobo_projectinit_ERROR")
diff --git a/README.md b/README.md
index 224ac7f..31449ea 100644
--- a/README.md
+++ b/README.md
@@ -120,7 +120,7 @@ install.packages("devtools")
* Install koboloadeR:
```{r}
-devtools::install_github("unhcr/koboloadeR")
+devtools::install_github("unhcr/koboloadeR", Ncpus=4)
```
* You are all set! You can know use koboloadeR. If you have a problem consult the common troubleshooting part at the end of this page.
diff --git a/data/form.xls b/data/form.xls
index a9de33f2e45b87b72c170bee7a0870e301af3e28..c3d3e19384e3ddc235e30f30700b3cddb6cd540c 100644
GIT binary patch
delta 77
zcmZp8AlmRibb|(yumA&tYf64;Vo{2MPilI8X+dVrWJjj($pK7k%`=$VXD~4WF^Fac
cVwUYQm{_mGb6hyxR3BG%jd6QP5^E1H0QfK((*OVf
delta 64
zcmZp8AlmRibb|&H7drz(YD#`-Vo}OuN2c(}0ZjbOGnm?EFfjr#h-L<2mhCf`Sg*uS
PH%MaT*j|#v+QSO~rj-
koboloadeR
- 0.1.7
+ 0.1.8
@@ -176,7 +176,7 @@ Contents
diff --git a/docs/CODE_OF_CONDUCT.html b/docs/CODE_OF_CONDUCT.html
index 69d72b5..03532a2 100644
--- a/docs/CODE_OF_CONDUCT.html
+++ b/docs/CODE_OF_CONDUCT.html
@@ -81,7 +81,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -222,7 +222,7 @@ Contents
diff --git a/docs/CONTRIBUTING.html b/docs/CONTRIBUTING.html
index 546f82a..b46326c 100644
--- a/docs/CONTRIBUTING.html
+++ b/docs/CONTRIBUTING.html
@@ -81,7 +81,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -199,7 +199,7 @@ Contents
diff --git a/docs/ISSUE_TEMPLATE.html b/docs/ISSUE_TEMPLATE.html
index e4f490d..17896eb 100644
--- a/docs/ISSUE_TEMPLATE.html
+++ b/docs/ISSUE_TEMPLATE.html
@@ -81,7 +81,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -176,7 +176,9 @@
Current result
describe what you you currently experience from this process, and thereby explain the bug
-
+
@@ -208,7 +210,7 @@ Contents
diff --git a/docs/articles/Anonymisation.html b/docs/articles/Anonymisation.html
index 675b0b2..940e756 100644
--- a/docs/articles/Anonymisation.html
+++ b/docs/articles/Anonymisation.html
@@ -37,7 +37,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -109,7 +109,7 @@
Data Anonymisation and disclosure risk measurement
Edouard Legoupil
- 2020-07-13
+ 2020-09-17
Source: vignettes/Anonymisation.Rmd
Anonymisation.Rmd
@@ -214,7 +214,7 @@
diff --git a/docs/articles/Cleaning.html b/docs/articles/Cleaning.html
index f8898fe..2c64b4b 100644
--- a/docs/articles/Cleaning.html
+++ b/docs/articles/Cleaning.html
@@ -37,7 +37,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -109,7 +109,7 @@
Data Cleaning
Edouard Legoupil
- 2020-07-13
+ 2020-09-17
Source: vignettes/Cleaning.Rmd
Cleaning.Rmd
@@ -158,7 +158,7 @@
diff --git a/docs/articles/Console.html b/docs/articles/Console.html
index 9109c07..fe959e8 100644
--- a/docs/articles/Console.html
+++ b/docs/articles/Console.html
@@ -37,7 +37,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -109,7 +109,7 @@
Using console script
Edouard Legoupil
- 2020-07-13
+ 2020-09-17
Source: vignettes/Console.Rmd
Console.Rmd
@@ -225,7 +225,7 @@
diff --git a/docs/articles/Crunching.html b/docs/articles/Crunching.html
index dd1d96d..3e681b9 100644
--- a/docs/articles/Crunching.html
+++ b/docs/articles/Crunching.html
@@ -37,7 +37,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -109,7 +109,7 @@
Data Crunching
Edouard Legoupil
- 2020-07-13
+ 2020-09-17
Source: vignettes/Crunching.Rmd
Crunching.Rmd
@@ -193,7 +193,7 @@
diff --git a/docs/articles/Dissiminating.html b/docs/articles/Dissiminating.html
index e29c171..fe2f2de 100644
--- a/docs/articles/Dissiminating.html
+++ b/docs/articles/Dissiminating.html
@@ -37,7 +37,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -109,7 +109,7 @@
Dissiminating
Edouard Legoupil
- 2020-07-13
+ 2020-09-17
Source: vignettes/Dissiminating.Rmd
Dissiminating.Rmd
@@ -139,7 +139,7 @@ 2020-07-13
diff --git a/docs/articles/Getting_data.html b/docs/articles/Getting_data.html
index 91f4b2a..d8e95a7 100644
--- a/docs/articles/Getting_data.html
+++ b/docs/articles/Getting_data.html
@@ -37,7 +37,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -109,7 +109,7 @@
Getting data from server
Edouard Legoupil
- 2020-07-13
+ 2020-09-17
Source: vignettes/Getting_data.Rmd
Getting_data.Rmd
@@ -247,7 +247,7 @@
diff --git a/docs/articles/Predicting_Scoring.html b/docs/articles/Predicting_Scoring.html
index 6f30916..30a3b6d 100644
--- a/docs/articles/Predicting_Scoring.html
+++ b/docs/articles/Predicting_Scoring.html
@@ -37,7 +37,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -109,7 +109,7 @@
Predicting and Scoring
Edouard Legoupil
- 2020-07-13
+ 2020-09-17
Source: vignettes/Predicting_Scoring.Rmd
Predicting_Scoring.Rmd
@@ -139,7 +139,7 @@
diff --git a/docs/articles/Sampling.html b/docs/articles/Sampling.html
index df89840..f50ba12 100644
--- a/docs/articles/Sampling.html
+++ b/docs/articles/Sampling.html
@@ -37,7 +37,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -109,7 +109,7 @@
Sampling
Edouard Legoupil
- 2020-07-13
+ 2020-09-17
Source: vignettes/Sampling.Rmd
Sampling.Rmd
@@ -141,7 +141,7 @@
diff --git a/docs/articles/Troubleshooting.html b/docs/articles/Troubleshooting.html
index d118683..984b7ef 100644
--- a/docs/articles/Troubleshooting.html
+++ b/docs/articles/Troubleshooting.html
@@ -37,7 +37,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -109,7 +109,7 @@
Common Troubleshooting
Edouard Legoupil
- 2020-07-13
+ 2020-09-17
Source: vignettes/Troubleshooting.Rmd
Troubleshooting.Rmd
@@ -202,7 +202,7 @@ my custom path
diff --git a/docs/articles/index.html b/docs/articles/index.html
index 495fb08..8908e4d 100644
--- a/docs/articles/index.html
+++ b/docs/articles/index.html
@@ -81,7 +81,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -190,7 +190,7 @@ All vignettes
diff --git a/docs/articles/xlsform.html b/docs/articles/xlsform.html
index 72be7f4..3ab3914 100644
--- a/docs/articles/xlsform.html
+++ b/docs/articles/xlsform.html
@@ -37,7 +37,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -110,7 +110,7 @@ Data Analysis Plan within your xlsfrom
Edouard Legoupil
- 2020-07-13
+ 2020-09-17
Source: vignettes/xlsform.Rmd
xlsform.Rmd
@@ -269,7 +269,7 @@
diff --git a/docs/authors.html b/docs/authors.html
index 85882a4..4198a03 100644
--- a/docs/authors.html
+++ b/docs/authors.html
@@ -81,7 +81,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -184,7 +184,7 @@ Authors
diff --git a/docs/index.html b/docs/index.html
index f169614..9b43f40 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -37,7 +37,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -185,7 +185,7 @@
Click Create project
Then setup a few things: run those two lines:
-library (koboloadeR) # This loads koboloadeR package
+library (koboloadeR) # This loads koboloadeR package
kobo_projectinit() # Creates folders necessary and transfer files needed
It might take a while as a few other packages have to be installed or loaded. Once the see the " >" again at the beginning of the line, you are ready to start
@@ -315,7 +315,7 @@ Dev status
diff --git a/docs/news/index.html b/docs/news/index.html
index 05f939d..495f7e6 100644
--- a/docs/news/index.html
+++ b/docs/news/index.html
@@ -81,7 +81,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -154,6 +154,14 @@ Changelog
Source: NEWS.md
+
koboloadeR 0.1.7
@@ -225,7 +233,7 @@
Contents
diff --git a/docs/pkgdown.css b/docs/pkgdown.css
index c01e592..1273238 100644
--- a/docs/pkgdown.css
+++ b/docs/pkgdown.css
@@ -244,14 +244,14 @@ nav[data-toggle='toc'] .nav .nav > .active:focus > a {
.ref-index th {font-weight: normal;}
-.ref-index td {vertical-align: top;}
+.ref-index td {vertical-align: top; min-width: 100px}
.ref-index .icon {width: 40px;}
.ref-index .alias {width: 40%;}
.ref-index-icons .alias {width: calc(40% - 40px);}
.ref-index .title {width: 60%;}
.ref-arguments th {text-align: right; padding-right: 10px;}
-.ref-arguments th, .ref-arguments td {vertical-align: top;}
+.ref-arguments th, .ref-arguments td {vertical-align: top; min-width: 100px}
.ref-arguments .name {width: 20%;}
.ref-arguments .desc {width: 80%;}
diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml
index 4de992f..bc07938 100644
--- a/docs/pkgdown.yml
+++ b/docs/pkgdown.yml
@@ -1,5 +1,5 @@
pandoc: 2.7.3
-pkgdown: 1.5.1
+pkgdown: 1.6.1
pkgdown_sha: ~
articles:
Anonymisation: Anonymisation.html
@@ -12,7 +12,7 @@ articles:
Sampling: Sampling.html
Troubleshooting: Troubleshooting.html
xlsform: xlsform.html
-last_built: 2020-07-13T18:06Z
+last_built: 2020-09-17T22:18Z
urls:
reference: https://unhcr.github.io/koboloadeR/docs//reference
article: https://unhcr.github.io/koboloadeR/docs//articles
diff --git a/docs/reference/Rplot001.png b/docs/reference/Rplot001.png
new file mode 100644
index 0000000000000000000000000000000000000000..17a358060aed2a86950757bbd25c6f92c08c458f
GIT binary patch
literal 1011
zcmeAS@N?(olHy`uVBq!ia0y~yV0-|=9Be?5+AI5}0x7m6Z+90U4Fo@(ch>_c&H|6f
zVg?3oArNM~bhqvg0|WD9PZ!6KiaBo&GBN^{G%5UFpXcEKVvd5*5Eu=C0SJK)8A6*F
U7`aXvEC5;V>FVdQ&MBb@00SN#Z2$lO
literal 0
HcmV?d00001
diff --git a/docs/reference/format_si.html b/docs/reference/format_si.html
index 156c121..4bfd445 100644
--- a/docs/reference/format_si.html
+++ b/docs/reference/format_si.html
@@ -91,7 +91,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -178,7 +178,7 @@ Format axis label
Args:
- format_si(...)
+ format_si(...)
Arguments
@@ -193,9 +193,13 @@ Arg
Value
Formatted number.
+ Author
+
+ Someone
Examples
- format_si()
#> function (x)
+
format_si()
+
#> function (x)
#> {
#> limits <- c(1e-24, 1e-21, 1e-18, 1e-15, 1e-12, 1e-09, 1e-06,
#> 0.001, 1, 1000, 1e+06, 1e+09, 1e+12, 1e+15, 1e+18, 1e+21,
@@ -207,8 +211,8 @@
Examp
#> paste(format(round(x/limits[i], 1), trim = TRUE, scientific = FALSE,
#> ...), prefix[i])
#> }
-#> <bytecode: 0x560cc0771248>
-#> <environment: 0x560cc0773718>
+#> <bytecode: 0x55a60ae7e700>
+#> <environment: 0x55a60ae82b60>
diff --git a/docs/reference/get_me.html b/docs/reference/get_me.html
index 2b04f02..9e5ae08 100644
--- a/docs/reference/get_me.html
+++ b/docs/reference/get_me.html
@@ -83,7 +83,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -162,7 +162,7 @@ Authentify in Kobo Server
Adds basic level authentication if provided.
- get_me(user, URL)
+ get_me(user, URL)
Arguments
@@ -181,6 +181,9 @@ Note
This function is not intended to be called directly.
It is used in other functions.
+ Author
+
+ Ananda Mahto
diff --git a/docs/reference/index.html b/docs/reference/index.html
index 5a96d6e..010a66b 100644
--- a/docs/reference/index.html
+++ b/docs/reference/index.html
@@ -81,7 +81,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -656,7 +656,7 @@ Contents
diff --git a/docs/reference/kobo_aggregate.html b/docs/reference/kobo_aggregate.html
index 9be4d67..ae73ab6 100644
--- a/docs/reference/kobo_aggregate.html
+++ b/docs/reference/kobo_aggregate.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Generate an aggregaation of the variable of a dataset for instance by admin
Generate an aggregaation of the variable of a dataset for instance by admin level
- kobo_aggregate(form = "form.xls", aggregVar = "admin1")
+ kobo_aggregate(form = "form.xls", aggregVar = "admin1")
Arguments
@@ -179,11 +179,16 @@ Arg
Value
No return, All results will be saved in the data folder
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_aggregate(form, mapref)
-}
+ if (FALSE) {
+kobo_aggregate(form, mapref)
+}
+
+
diff --git a/docs/reference/kobo_anonymisation_report.html b/docs/reference/kobo_anonymisation_report.html
index 3b131f8..1a5f0cb 100644
--- a/docs/reference/kobo_anonymisation_report.html
+++ b/docs/reference/kobo_anonymisation_report.html
@@ -84,7 +84,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -164,7 +164,7 @@ Generate a report displaying disclosure risk for Statistical Disclosure Cont
https://cran.r-project.org/web/packages/sdcMicro/sdcMicro.pdf
- kobo_anonymisation_report(frame, form = "form.xls", app = "console")
+ kobo_anonymisation_report(frame, form = "form.xls", app = "console")
Arguments
@@ -183,11 +183,16 @@ Arg
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_anonymisation_report(frame, form = "form.xls")
-}
+ if (FALSE) {
+kobo_anonymisation_report(frame, form = "form.xls")
+}
+
+
diff --git a/docs/reference/kobo_anonymise.html b/docs/reference/kobo_anonymise.html
index 4f286bc..bb7ce54 100644
--- a/docs/reference/kobo_anonymise.html
+++ b/docs/reference/kobo_anonymise.html
@@ -99,7 +99,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -194,7 +194,7 @@ Remove direct identifier
- kobo_anonymise(frame, form = "form.xls", app = "console")
+ kobo_anonymise(frame, form = "form.xls", app = "console")
Arguments
@@ -213,11 +213,16 @@ Arg
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_anonymise(frame, form = "form.xls")
-}
+ if (FALSE) {
+kobo_anonymise(frame, form = "form.xls")
+}
+
+
diff --git a/docs/reference/kobo_apps.html b/docs/reference/kobo_apps.html
index 75cc2e9..de3bd85 100644
--- a/docs/reference/kobo_apps.html
+++ b/docs/reference/kobo_apps.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Shiny Apps for Viewing Online KoBo Data
A launcher for the Shiny apps available in the koboloadeR package.
- kobo_apps(app)
+ kobo_apps(app)
Arguments
@@ -185,12 +185,17 @@
+ Author
+
+ Ananda Mahto
Examples
-
diff --git a/docs/reference/kobo_arrange_variablename.html b/docs/reference/kobo_arrange_variablename.html
index dd33c28..f76a3e5 100644
--- a/docs/reference/kobo_arrange_variablename.html
+++ b/docs/reference/kobo_arrange_variablename.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Replace / or : in variable name in order to use the dictionnary
The character to be replaced - coudl be a "/" or a ":"
- kobo_arrange_variablename(data)
+ kobo_arrange_variablename(data)
Arguments
@@ -171,11 +171,17 @@ Arg
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_arrange_variablename(data)
-}
+ if (FALSE) {
+kobo_arrange_variablename(data)
+}
+
+
+
diff --git a/docs/reference/kobo_atlas_report.html b/docs/reference/kobo_atlas_report.html
index 66d98bd..a2e1cb2 100644
--- a/docs/reference/kobo_atlas_report.html
+++ b/docs/reference/kobo_atlas_report.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -161,11 +161,11 @@ Generate an atlas out of the dataset
kobo_atlas_report(
- form = "form.xls",
- app = "console",
- output = "html",
- render = "TRUE",
- lang = "eng"
+ form = "form.xls",
+ app = "console",
+ output = "html",
+ render = "TRUE",
+ lang = "eng"
)
Arguments
@@ -197,11 +197,16 @@ Arg
Value
No return, All results will be saved on RMD files and Word files
+ Author
+
+ Edouard Legoupil#'
Examples
- if (FALSE) {
-kobo_atlas_report(form, mapfile)
-}
+ if (FALSE) {
+kobo_atlas_report(form, mapfile)
+}
+
+
diff --git a/docs/reference/kobo_check_analysis_plan.html b/docs/reference/kobo_check_analysis_plan.html
index 439d513..7ebbdc3 100644
--- a/docs/reference/kobo_check_analysis_plan.html
+++ b/docs/reference/kobo_check_analysis_plan.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Check Analysis Plan
Check if the user setup the analysis plan in the right way.
- kobo_check_analysis_plan(form = "form.xls")
+ kobo_check_analysis_plan(form = "form.xls")
Arguments
@@ -175,11 +175,16 @@ Arg
Value
The return will be a list that contains a list that checks all elements of the analysis plan and message of confirmation
+ Author
+
+ Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_check_project_configuration.html b/docs/reference/kobo_check_project_configuration.html
index 797abe1..6c59251 100644
--- a/docs/reference/kobo_check_project_configuration.html
+++ b/docs/reference/kobo_check_project_configuration.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Check kobo_check_project_configuration
Check if the project configurations exist and all required files are in the right place.
- kobo_check_project_configuration(form = "form.xls")
+ kobo_check_project_configuration(form = "form.xls")
Arguments
@@ -175,11 +175,16 @@ Arg
Value
The return will be a list that contains a list that checks all elements of the project configuration and a message of confirmation
+ Author
+
+ Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_clean.html b/docs/reference/kobo_clean.html
index 850861e..e71b9ba 100644
--- a/docs/reference/kobo_clean.html
+++ b/docs/reference/kobo_clean.html
@@ -85,7 +85,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -166,7 +166,7 @@ Add cleaned variables to the frame based on a reference table
The new cleaned variable will be inserted in the dictionnary. with a suffix '.clean'
- kobo_clean(frame, form = "form.xls", app = "console")
+ kobo_clean(frame, form = "form.xls", app = "console")
Arguments
@@ -185,11 +185,17 @@ Arg
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_clean(frame, form = "form.xls")
-}
+ if (FALSE) {
+kobo_clean(frame, form = "form.xls")
+}
+
+
+
diff --git a/docs/reference/kobo_cluster_report.html b/docs/reference/kobo_cluster_report.html
index d0b0d47..4a22ff4 100644
--- a/docs/reference/kobo_cluster_report.html
+++ b/docs/reference/kobo_cluster_report.html
@@ -83,7 +83,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -163,10 +163,10 @@ Generate reports with various clusterisation techniques
kobo_cluster_report(
- frame = MainDataFrame,
- form = "form.xls",
- output = "html",
- app = "console"
+ frame = MainDataFrame,
+ form = "form.xls",
+ output = "html",
+ app = "console"
)
Arguments
@@ -190,11 +190,16 @@ Arg
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_cluster_report(frame = MainDataFrame , form = "form.xls")
-}
+ if (FALSE) {
+kobo_cluster_report(frame = MainDataFrame , form = "form.xls")
+}
+
+
diff --git a/docs/reference/kobo_consolidateone.html b/docs/reference/kobo_consolidateone.html
index 31db3de..614130c 100644
--- a/docs/reference/kobo_consolidateone.html
+++ b/docs/reference/kobo_consolidateone.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Merge disagregated select_one variable
Merge disagregated select_one variable
- kobo_consolidateone(frame, form = "form.xls")
+ kobo_consolidateone(frame, form = "form.xls")
Arguments
@@ -178,11 +178,17 @@ Arg
Value
data
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_consolidateone(frame , form = "form.xls")
-}
+ if (FALSE) {
+kobo_consolidateone(frame , form = "form.xls")
+}
+
+
+
diff --git a/docs/reference/kobo_correlation_analysis.html b/docs/reference/kobo_correlation_analysis.html
index 9d16440..19abdf9 100644
--- a/docs/reference/kobo_correlation_analysis.html
+++ b/docs/reference/kobo_correlation_analysis.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Correlation Analysis
This function apllay all correlations test to discover if there is a relation between the targe variable and other variables
- kobo_correlation_analysis(form = "form.xls", frame, target, app = "console")
+ kobo_correlation_analysis(form = "form.xls", frame, target, app = "console")
Arguments
@@ -187,11 +187,16 @@ Arg
Value
A list that includes all analysis and charts
+ Author
+
+ Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_create_indicators.html b/docs/reference/kobo_create_indicators.html
index fc5db62..63cb143 100644
--- a/docs/reference/kobo_create_indicators.html
+++ b/docs/reference/kobo_create_indicators.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Create Indicators
Function to compute indicators from indicator sheet
- kobo_create_indicators(form = "form.xls")
+ kobo_create_indicators(form = "form.xls")
Arguments
@@ -168,18 +168,23 @@ Arg
form |
The full filename of the form to be accessed (xls or xlsx file).
-It is assumed that the form is stored in the data folder. |
+It is assumed that the form is stored in the data-raw folder.
Value
No return, all results will be saved inside new CSV files
+ Author
+
+ Edouard Legoupil, Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_crunching_report.html b/docs/reference/kobo_crunching_report.html
index dd6dc3f..cfbe05f 100644
--- a/docs/reference/kobo_crunching_report.html
+++ b/docs/reference/kobo_crunching_report.html
@@ -40,7 +40,8 @@
-
+
@@ -82,7 +83,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -157,15 +158,16 @@ Generate Data Crunching Report
-
Generate crunching Report that contains all descriptive statistics, correlation analysis, tabulation and data visualization for variables and indicators.
+
Generate crunching Report that contains all descriptive statistics, correlation analysis, tabulation and data visualization for variables and indicators.
+ For disaggregation of variable indicate "facet","stak", "fill" or "dodge". for test of correlation on select_one variable use correlation = TRUE
kobo_crunching_report(
- form = "form.xls",
- app = "console",
- output = "html",
- render = "TRUE",
- lang = "eng"
+ form = "form.xls",
+ app = "console",
+ output = "html",
+ render = "TRUE",
+ lang = "eng"
)
Arguments
@@ -173,8 +175,8 @@ Arg
form |
- The full filename of the form to be accessed (xls or xlsx file).
-It is assumed that the form is stored in the data folder. |
+ The full filename of the form to be accessed (xls or xlsx file).
+It is assumed that the form is stored in the data-raw folder. |
app |
@@ -197,11 +199,16 @@ Arg
Value
No return, All results will be saved on RMD files and Word files
+ Author
+
+ Edouard Legoupil, Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_data_downloader.html b/docs/reference/kobo_data_downloader.html
index 81d22bf..3df823e 100644
--- a/docs/reference/kobo_data_downloader.html
+++ b/docs/reference/kobo_data_downloader.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Retrieve the Data from a Specified Dataset
Retrieves the data submitted to a specified dataset.
- kobo_data_downloader(formid, user = NULL, api = "unhcr", check = TRUE)
+ kobo_data_downloader(formid, user = NULL, api = "unhcr", check = TRUE)
Arguments
@@ -193,12 +193,17 @@ Value
A "data.table" with the full dataset. If data is already found on
disk and the number of rows matches with the online datasets, the local copy
would be used. The dataset would be named in the form of "data_formid".
+ Author
+
+ Ananda Mahto
Examples
-
diff --git a/docs/reference/kobo_datasets.html b/docs/reference/kobo_datasets.html
index d0719f2..ebb10f3 100644
--- a/docs/reference/kobo_datasets.html
+++ b/docs/reference/kobo_datasets.html
@@ -83,7 +83,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -162,7 +162,7 @@ Lists the Datasets Available
to account.
- kobo_datasets(user = NULL, api = "unhcr")
+ kobo_datasets(user = NULL, api = "unhcr")
Arguments
@@ -185,11 +185,16 @@ Value
A data.table containing details about the datasets available,
including items like the "title", "id", and "url" of the datasets.
+ Author
+
+ Ananda Mahto
Examples
-
diff --git a/docs/reference/kobo_datasets2.html b/docs/reference/kobo_datasets2.html
index 1852be8..37bd9f3 100644
--- a/docs/reference/kobo_datasets2.html
+++ b/docs/reference/kobo_datasets2.html
@@ -83,7 +83,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -162,7 +162,7 @@ Dataset list
- description id - id_string - title - url
- kobo_datasets2(user, api)
+ kobo_datasets2(user, api)
Arguments
@@ -185,11 +185,16 @@ Value
A data.table containing details about the datasets available,
including items like the "title", "id", and "submission".
+ Author
+
+ Edouard Legoupil
Examples
-
diff --git a/docs/reference/kobo_ddi.html b/docs/reference/kobo_ddi.html
index 704efce..f6a3f34 100644
--- a/docs/reference/kobo_ddi.html
+++ b/docs/reference/kobo_ddi.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ DDI generation
This function creates a DDI version 2.5, XML file structure for microdata library
- kobo_ddi(form = "form.xls", app = "console")
+ kobo_ddi(form = "form.xls", app = "console")
Arguments
@@ -179,11 +179,16 @@ Arg
Value
DDI version 2.5, XML file structure will saved under out/ddi
+ Author
+
+ Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_dico.html b/docs/reference/kobo_dico.html
index cb7d5bb..0a1467f 100644
--- a/docs/reference/kobo_dico.html
+++ b/docs/reference/kobo_dico.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Create Data dictionnary an the xlsform
Produce a data dictionnary based on the xlsform for the project
- kobo_dico(form = "form.xls")
+ kobo_dico(form = "form.xls")
Arguments
@@ -175,11 +175,16 @@ Arg
Value
A "data.frame" with the full data dictionnary. To be used in the rest of the analysis.
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_dico(form = "form.xls")
-}
+ if (FALSE) {
+kobo_dico(form = "form.xls")
+}
+
+
diff --git a/docs/reference/kobo_dummy.html b/docs/reference/kobo_dummy.html
index 21966f7..515717c 100644
--- a/docs/reference/kobo_dummy.html
+++ b/docs/reference/kobo_dummy.html
@@ -91,7 +91,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -178,7 +178,7 @@ Create a dummy dataset
- adds InstandID column to link hierearchical data based on "`repeat_count`"
- kobo_dummy(form = "form.xls")
+ kobo_dummy(form = "form.xls")
Arguments
@@ -189,11 +189,16 @@ Arg
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_dummy(form)
-}
+ if (FALSE) {
+kobo_dummy(form)
+}
+
+
diff --git a/docs/reference/kobo_edit_form.html b/docs/reference/kobo_edit_form.html
index 0990eb9..588b942 100644
--- a/docs/reference/kobo_edit_form.html
+++ b/docs/reference/kobo_edit_form.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -161,12 +161,12 @@ Edit XLS form with shiny app for configuration
kobo_edit_form(
- form = "form.xls",
- survey = NULL,
- choices = NULL,
- indicator = NULL,
- settings = NULL,
- analysisSettings = NULL
+ form = "form.xls",
+ survey = NULL,
+ choices = NULL,
+ indicator = NULL,
+ settings = NULL,
+ analysisSettings = NULL
)
Arguments
@@ -202,11 +202,16 @@ Arg
Value
No return, this function edit the original XLSform directly
+ Author
+
+ Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_encode.html b/docs/reference/kobo_encode.html
index aa4e171..8755217 100644
--- a/docs/reference/kobo_encode.html
+++ b/docs/reference/kobo_encode.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Encode variable
Insert the full label in data frame based on dictionnary
- kobo_encode(data, dico)
+ kobo_encode(data, dico)
Arguments
@@ -178,11 +178,16 @@ Arg
Value
A "data.table" with the full data.label. To be used for graphs generation.
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_encode(data, dico)
-}
+ if (FALSE) {
+kobo_encode(data, dico)
+}
+
+
diff --git a/docs/reference/kobo_encode_repeat.html b/docs/reference/kobo_encode_repeat.html
index e59c227..71e7463 100644
--- a/docs/reference/kobo_encode_repeat.html
+++ b/docs/reference/kobo_encode_repeat.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Encode variable
Insert the full label in data frame based on dictionnary - used when data is exported through briefcase because of repeated element in the dataset. In the this case, merge is done on name instead of fullname.
- kobo_encode_repeat(data, dico)
+ kobo_encode_repeat(data, dico)
Arguments
@@ -178,11 +178,16 @@ Arg
Value
A "data.table" with the full data.label. To be used for graphs generation.
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_encode_repeat(data, dico)
-}
+ if (FALSE) {
+kobo_encode_repeat(data, dico)
+}
+
+
diff --git a/docs/reference/kobo_form.html b/docs/reference/kobo_form.html
index e3eddc2..d870d5b 100644
--- a/docs/reference/kobo_form.html
+++ b/docs/reference/kobo_form.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Download form from the platform
Download form from the platform
- kobo_form(formid, userpwd, api)
+ kobo_form(formid, userpwd, api)
Arguments
@@ -186,12 +186,17 @@ Arg
Value
Downloaded form path.
+ Author
+
+ Edouard Legoupil
Examples
-
diff --git a/docs/reference/kobo_forminfo.html b/docs/reference/kobo_forminfo.html
index e15c4b3..b25658c 100644
--- a/docs/reference/kobo_forminfo.html
+++ b/docs/reference/kobo_forminfo.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Get form attributes
Obtain form info in order to correctly retrieve the form.
- kobo_forminfo(formid, user = NULL, api = api)
+ kobo_forminfo(formid, user = NULL, api = api)
Arguments
@@ -188,12 +188,18 @@ Value
A "data.table" with the full forminfo.
The forminfo would be named in the form of "data_formid".
The URL of the form based on form id.
+ Author
+
+ Edouard Legoupil
Examples
-
diff --git a/docs/reference/kobo_getMainDirectory.html b/docs/reference/kobo_getMainDirectory.html
index 7be4914..01a19dc 100644
--- a/docs/reference/kobo_getMainDirectory.html
+++ b/docs/reference/kobo_getMainDirectory.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -166,11 +166,16 @@ get Main Directory for a KoboloadeR project
Value
A string for Main Directory path.
+ Author
+
+ Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_get_begin_repeat.html b/docs/reference/kobo_get_begin_repeat.html
index 5d4de91..1f14a9d 100644
--- a/docs/reference/kobo_get_begin_repeat.html
+++ b/docs/reference/kobo_get_begin_repeat.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Get all begin repeat from xlsform
Get the 'name' column for all rows that have 'begin repeat' value in 'type' column
- kobo_get_begin_repeat(form = "form.xls")
+ kobo_get_begin_repeat(form = "form.xls")
Arguments
@@ -175,11 +175,16 @@ Arg
Value
return a list that contains 1.vector of string represent the names 2.message about status
+ Author
+
+ Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_get_config.html b/docs/reference/kobo_get_config.html
index c81ec2e..50aea57 100644
--- a/docs/reference/kobo_get_config.html
+++ b/docs/reference/kobo_get_config.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Get Configuration
Return all configuration from Analysis Settings sheet of xlsform
- kobo_get_config(form = "form.xls")
+ kobo_get_config(form = "form.xls")
Arguments
@@ -174,11 +174,16 @@ Arg
Value
Return a dataframe that contains configuration of the project
+ Author
+
+ Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_get_dataframes_levels.html b/docs/reference/kobo_get_dataframes_levels.html
index 5dbdbc7..bc4726f 100644
--- a/docs/reference/kobo_get_dataframes_levels.html
+++ b/docs/reference/kobo_get_dataframes_levels.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Dataframes Levels
Produce a dataframe that represents levels and parents for the main dataframe and all sub datasets.
- kobo_get_dataframes_levels(form = "form.xls")
+ kobo_get_dataframes_levels(form = "form.xls")
Arguments
@@ -175,11 +175,16 @@ Arg
Value
A "data.frame" contains levels and parents for the main dataframe and all sub datasets.
+ Author
+
+ Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_get_theme.html b/docs/reference/kobo_get_theme.html
index 210b0c6..7bf6383 100644
--- a/docs/reference/kobo_get_theme.html
+++ b/docs/reference/kobo_get_theme.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -166,11 +166,25 @@ Get Themes
Value
Return a list that contains all themes
+ Author
+
+ Maher Daoud, Edouard Legoupil - with insiparation from bbc
+
+GENERAL THEME
+we'll use this for most of our charts and build on it when we need to
+THEME FOR 'WIDE' BAR CHARTS
+there are several bar charts that are very wide, and need some special formatting
+THEME FOR 'WIDE' BAR CHARTS
+we'll use this for small multiple charts. these also have some special formatting requirements
+THEME FOR MAPS
+It's based on theme_minimal and basically resets all the axes.
+It also defined a very subtle grid and a warmgrey background, which gives it some sort of paper map feeling..
Examples
-
diff --git a/docs/reference/kobo_host.html b/docs/reference/kobo_host.html
index 0fe4949..e2c8d49 100644
--- a/docs/reference/kobo_host.html
+++ b/docs/reference/kobo_host.html
@@ -83,7 +83,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -162,7 +162,7 @@ Select server
Specifies the Host URL of the API to Use
- kobo_host(api)
+ kobo_host(api)
Arguments
@@ -186,13 +186,18 @@ Note
enter the full URL.
This function is not intended to be called directly.
It is used in other functions.
+ Author
+
+ Ananda Mahto
Examples
#'
-if (FALSE) {
+if (FALSE) {
kobo_host("unhcr")
kobo_host("ttps://kobocat.unhcr.org/api/v1/")
-}
+}
+
+
diff --git a/docs/reference/kobo_indicator.html b/docs/reference/kobo_indicator.html
index 385fc1f..5b872e7 100644
--- a/docs/reference/kobo_indicator.html
+++ b/docs/reference/kobo_indicator.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Import & perform the indicator calculation from the XLS form
Add additional variables based on the data analysis plan to the data frame
- kobo_indicator(mainDir = "")
+ kobo_indicator(mainDir = "")
Arguments
@@ -174,11 +174,16 @@ Arg
Value
A file with all elements to get your data & form.
+ Author
+
+ Elliott Messeiller
Examples
-
diff --git a/docs/reference/kobo_label.html b/docs/reference/kobo_label.html
index a8e9658..2ef6f3c 100644
--- a/docs/reference/kobo_label.html
+++ b/docs/reference/kobo_label.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Label Variable
Insert the full label in data frame based on dictionnary
- kobo_label(datalabel, dico)
+ kobo_label(datalabel, dico)
Arguments
@@ -178,11 +178,16 @@ Arg
Value
A "data.table" with the full data.label. To be used for graphs generation.
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_label(data, dico)
-}
+ if (FALSE) {
+kobo_label(data, dico)
+}
+
+
diff --git a/docs/reference/kobo_left_align.html b/docs/reference/kobo_left_align.html
index c12c982..6327af8 100644
--- a/docs/reference/kobo_left_align.html
+++ b/docs/reference/kobo_left_align.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ UNHCR ggplot2 theme
Left align chart title and subtitle on a ggplot2
- kobo_left_align(plot_name, pieces)
+ kobo_left_align(plot_name, pieces)
Arguments
@@ -178,11 +178,16 @@ Arg
Value
Return better chart
+ Author
+
+ Edouard Legoupil - with inspiration from bbc
Examples
-
diff --git a/docs/reference/kobo_load_data.html b/docs/reference/kobo_load_data.html
index b311785..05c8f89 100644
--- a/docs/reference/kobo_load_data.html
+++ b/docs/reference/kobo_load_data.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Kobo Load Data
Load form, building dictionnary, loading all required data into the environment, Check to split select_multiple if data is extracted from ODK, Clean variable if any and Re-encoding data based on the dictionnary
- kobo_load_data(form = "form.xls", app = "console")
+ kobo_load_data(form = "form.xls", app = "console")
Arguments
@@ -179,11 +179,16 @@ Arg
Value
No return, all results will be saved inside new CSV files
+ Author
+
+ Edouard Legoupil, Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_load_packages.html b/docs/reference/kobo_load_packages.html
index 2bff985..33fec92 100644
--- a/docs/reference/kobo_load_packages.html
+++ b/docs/reference/kobo_load_packages.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -166,11 +166,17 @@ Load Packages
Value
No return
+ Author
+
+ Edouard Legoupil, Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_map_cat.html b/docs/reference/kobo_map_cat.html
index 5631d60..40c3340 100644
--- a/docs/reference/kobo_map_cat.html
+++ b/docs/reference/kobo_map_cat.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Generate Maps for categorical variables
Automatically generate maps for all nominal & ordinal variables based on dates. ggplot2 is used.
- kobo_map_cat(data, xmax, xmin, ymax, ymin, dico)
+ kobo_map_cat(data, xmax, xmin, ymax, ymin, dico)
Arguments
@@ -191,11 +191,17 @@ Arg
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_map_cat(data,xmax,xmin,ymax,ymin, dico)
-}
+ if (FALSE) {
+kobo_map_cat(data,xmax,xmin,ymax,ymin, dico)
+}
+
+
+
diff --git a/docs/reference/kobo_map_int.html b/docs/reference/kobo_map_int.html
index 11390d7..3bb5866 100644
--- a/docs/reference/kobo_map_int.html
+++ b/docs/reference/kobo_map_int.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Generate Maps for integer variables
Automatically generate maps for all nominal & ordinal variables based on dates. ggplot2 is used.
- kobo_map_int(data, xmax, xmin, ymax, ymin, dico)
+ kobo_map_int(data, xmax, xmin, ymax, ymin, dico)
Arguments
@@ -191,11 +191,17 @@ Arg
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_map_int(data,xmax,xmin,ymax,ymin, dico)
-}
+ if (FALSE) {
+kobo_map_int(data,xmax,xmin,ymax,ymin, dico)
+}
+
+
+
diff --git a/docs/reference/kobo_prediction_report.html b/docs/reference/kobo_prediction_report.html
index 8e0358c..25a582c 100644
--- a/docs/reference/kobo_prediction_report.html
+++ b/docs/reference/kobo_prediction_report.html
@@ -95,7 +95,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -186,7 +186,7 @@ Generate prediction
The user needs to have previously loaded the registry, survey and form files
- kobo_prediction_report(dico, frame, registry)
+ kobo_prediction_report(dico, frame, registry)
Arguments
@@ -205,11 +205,16 @@ Arg
+ Author
+
+ Damien Seite, Edouard Legoupil
Examples
-
diff --git a/docs/reference/kobo_prepare_form.html b/docs/reference/kobo_prepare_form.html
index 278d92f..e90aedc 100644
--- a/docs/reference/kobo_prepare_form.html
+++ b/docs/reference/kobo_prepare_form.html
@@ -84,7 +84,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -164,7 +164,7 @@ Prepare XLS form
Also, coloring all rows that have type equal to "begin group", "end group", "begin repeat" or "end repeat".
- kobo_prepare_form(form = "form.xls")
+ kobo_prepare_form(form = "form.xls")
Arguments
@@ -179,11 +179,16 @@ Arg
Value
No return, this function edit the original XLSform directly
+ Author
+
+ Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_projectconfig.html b/docs/reference/kobo_projectconfig.html
index 740ffcd..055c0de 100644
--- a/docs/reference/kobo_projectconfig.html
+++ b/docs/reference/kobo_projectconfig.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -166,11 +166,16 @@ Data download configuration file
Value
A file with all elements to get your data & form.
+ Author
+
+ Edouard Legoupil
Examples
-
diff --git a/docs/reference/kobo_projectinit.html b/docs/reference/kobo_projectinit.html
index d5da6a6..f9dc998 100644
--- a/docs/reference/kobo_projectinit.html
+++ b/docs/reference/kobo_projectinit.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -166,11 +166,15 @@ Analysis project initiation
Value
A structure of directory and scripts in order to set up quickly a project.
+ Author
+
+ Edouard Legoupil, Elliott MEesseiller
Examples
-
diff --git a/docs/reference/kobo_question.html b/docs/reference/kobo_question.html
index e5277bd..bc95f3a 100644
--- a/docs/reference/kobo_question.html
+++ b/docs/reference/kobo_question.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Generates graphics and basic information based on the type of question and i
Automatically generates bar charts, histograms, and basic information of the question based on the question type to generate the report.
- kobo_question(question, mainDir = "")
+ kobo_question(question, mainDir = "")
Arguments
@@ -175,11 +175,17 @@ Arg
+ Author
+
+ Elliott Messeiller
Examples
-
diff --git a/docs/reference/kobo_registration.html b/docs/reference/kobo_registration.html
index 6b6e936..2760209 100644
--- a/docs/reference/kobo_registration.html
+++ b/docs/reference/kobo_registration.html
@@ -121,7 +121,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -244,11 +244,16 @@ Retrieve registration data from UNHCR proGres database and generate a summar
Value
save a cleaned csv file within the data folder.
+ Author
+
+ Edouard Legoupil
Examples
-
diff --git a/docs/reference/kobo_rename_xlsform_dataframes.html b/docs/reference/kobo_rename_xlsform_dataframes.html
index 13c633d..1a1e2dd 100644
--- a/docs/reference/kobo_rename_xlsform_dataframes.html
+++ b/docs/reference/kobo_rename_xlsform_dataframes.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Rename xlsform and all dataframes
Rename xlsform under data file to form.xls and all dataframes to the
- kobo_rename_xlsform_dataframes(form = "form.xls", app = "console")
+ kobo_rename_xlsform_dataframes(form = "form.xls", app = "console")
Arguments
@@ -179,11 +179,16 @@ Arg
Value
no return. only if there is error.
+ Author
+
+ Maher Daoud
Examples
-
diff --git a/docs/reference/kobo_samplingframe.html b/docs/reference/kobo_samplingframe.html
index 30d2a43..b6a82cd 100644
--- a/docs/reference/kobo_samplingframe.html
+++ b/docs/reference/kobo_samplingframe.html
@@ -88,7 +88,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -173,14 +173,14 @@ Sample a dataframe
kobo_samplingframe(
- data,
- strata,
- pop_col,
- confidence_level = 0.95,
- margin_error = 0.05,
- proportion = 0.5,
- method,
- buffer = 0.05
+ data,
+ strata,
+ pop_col,
+ confidence_level = 0.95,
+ margin_error = 0.05,
+ proportion = 0.5,
+ method,
+ buffer = 0.05
)
Arguments
@@ -223,13 +223,18 @@ Arg
+ Author
+
+ Elliott Messeiller
Examples
- if (FALSE) {
-kobo_samplingframe(data=SamplingFrame, strata="Province", pop_col = "Households",
- confidence_level = 0.95, margin_error = 0.05, proportion = 0.5,
- method = "strat2st")
-}
+ if (FALSE) {
+kobo_samplingframe(data=SamplingFrame, strata="Province", pop_col = "Households",
+ confidence_level = 0.95, margin_error = 0.05, proportion = 0.5,
+ method = "strat2st")
+}
+
+
diff --git a/docs/reference/kobo_shiny.html b/docs/reference/kobo_shiny.html
index 7cb56bd..f9f3484 100644
--- a/docs/reference/kobo_shiny.html
+++ b/docs/reference/kobo_shiny.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Shiny app launcher
A function to launch shiny apps
- kobo_shiny(app = "")
+ kobo_shiny(app = "")
Arguments
@@ -171,11 +171,17 @@ Arg
+ Author
+
+ Elliott Messeiller
Examples
- if (FALSE) {
-kobo_shiny(appname)
-}
+ if (FALSE) {
+kobo_shiny(appname)
+}
+
+
+
diff --git a/docs/reference/kobo_split_multiple.html b/docs/reference/kobo_split_multiple.html
index bd9cd64..4e995dc 100644
--- a/docs/reference/kobo_split_multiple.html
+++ b/docs/reference/kobo_split_multiple.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Split variables resulting from select_multiple questions
To be used when extracting from ODK that does not offers splitting capacity
- kobo_split_multiple(data, dico)
+ kobo_split_multiple(data, dico)
Arguments
@@ -178,11 +178,16 @@ Arg
Value
data A "data.table" with the full splitted select_multiple.
+ Author
+
+ Edouard Legoupil
Examples
- if (FALSE) {
-kobo_split_multiple(data, dico)
-}
+ if (FALSE) {
+kobo_split_multiple(data, dico)
+}
+
+
diff --git a/docs/reference/kobo_submission_count.html b/docs/reference/kobo_submission_count.html
index 042c064..ad17100 100644
--- a/docs/reference/kobo_submission_count.html
+++ b/docs/reference/kobo_submission_count.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Retrieve the Number of Submissions in a Specified Dataset
Retrieves the number of submissions made to a specified dataset.
- kobo_submission_count(formid, user = NULL, api = "unhcr")
+ kobo_submission_count(formid, user = NULL, api = "unhcr")
Arguments
@@ -186,12 +186,17 @@ Arg
Value
A single number indicating the number of submissions received.
+ Author
+
+ Ananda Mahto
Examples
-
diff --git a/docs/reference/kobo_time_parser_UTC.html b/docs/reference/kobo_time_parser_UTC.html
index f443e96..4f051b6 100644
--- a/docs/reference/kobo_time_parser_UTC.html
+++ b/docs/reference/kobo_time_parser_UTC.html
@@ -84,7 +84,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -164,7 +164,7 @@ Parses Dates from KoBo Into a More Usable Format
process these date/times into more usable formats.
- kobo_time_parser_UTC(instring)
+ kobo_time_parser_UTC(instring)
Arguments
@@ -180,12 +180,17 @@ Value
The kobo_time_parser_UTC
function returns a POSIXct object,
while the kobo_time_parser
function returns a formatted character
string that can be easily parsed as a date/time object.
+ Author
+
+ Ananda Mahto
Examples
- if (FALSE) {
-TIME <- "2015-08-27T13:28:29.000+06:30"
-kobo_time_parser_UTC(TIME)
-}
+ if (FALSE) {
+TIME <- "2015-08-27T13:28:29.000+06:30"
+kobo_time_parser_UTC(TIME)
+}
+
+
diff --git a/docs/reference/kobo_to_xlsform.html b/docs/reference/kobo_to_xlsform.html
index 647d97f..af22989 100644
--- a/docs/reference/kobo_to_xlsform.html
+++ b/docs/reference/kobo_to_xlsform.html
@@ -86,7 +86,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -168,7 +168,7 @@ Generate xlsfrom skeleton from a dataframe
will throw an error for any other object types.
- kobo_to_xlsform(df, form = "form.xls", n = 100)
+ kobo_to_xlsform(df, form = "form.xls", n = 100)
Arguments
@@ -188,13 +188,18 @@ Arg
+ Author
+
+ Edouard Legoupil
Examples
-
+
diff --git a/docs/reference/kobo_unhcr_style_bar.html b/docs/reference/kobo_unhcr_style_bar.html
index b073a47..b3bcbe6 100644
--- a/docs/reference/kobo_unhcr_style_bar.html
+++ b/docs/reference/kobo_unhcr_style_bar.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -166,11 +166,16 @@ UNHCR ggplot2 theme
Value
Return UNHCR Style
+ Author
+
+ Edouard Legoupil - with inspiration from bbc
Examples
-
diff --git a/docs/reference/kobo_unhcr_style_bar_big.html b/docs/reference/kobo_unhcr_style_bar_big.html
index f9fdec3..9780ec6 100644
--- a/docs/reference/kobo_unhcr_style_bar_big.html
+++ b/docs/reference/kobo_unhcr_style_bar_big.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -166,11 +166,16 @@ UNHCR ggplot2 theme with big labels for powerpoints
Value
Return UNHCR Style
+ Author
+
+ Edouard Legoupil - with inspiration from bbc
Examples
-
diff --git a/docs/reference/kobo_unhcr_style_histo.html b/docs/reference/kobo_unhcr_style_histo.html
index bea9ac2..a929564 100644
--- a/docs/reference/kobo_unhcr_style_histo.html
+++ b/docs/reference/kobo_unhcr_style_histo.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -166,9 +166,13 @@ UNHCR ggplot2 theme
Value
Return UNHCR Style
+ Author
+
+ Edouard Legoupil - with inspiration from bbc
Examples
- kobo_unhcr_style_histo()
#> List of 20
+
kobo_unhcr_style_histo()
+
#> List of 20
#> $ axis.title : list()
#> ..- attr(*, "class")= chr [1:2] "element_blank" "element"
#> $ axis.text :List of 11
@@ -317,7 +321,7 @@
Contents
diff --git a/docs/reference/kobo_unhcr_style_histo_big.html b/docs/reference/kobo_unhcr_style_histo_big.html
index d26ce3f..0cd738a 100644
--- a/docs/reference/kobo_unhcr_style_histo_big.html
+++ b/docs/reference/kobo_unhcr_style_histo_big.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -166,9 +166,13 @@ UNHCR ggplot2 theme
Value
Return UNHCR Style
+ Author
+
+ Edouard Legoupil - with inspiration from bbc
Examples
- kobo_unhcr_style_histo_big()
#> List of 20
+
kobo_unhcr_style_histo_big()
+
#> List of 20
#> $ axis.title : list()
#> ..- attr(*, "class")= chr [1:2] "element_blank" "element"
#> $ axis.text :List of 11
@@ -317,7 +321,7 @@
Contents
diff --git a/docs/reference/kobo_unhcr_style_map.html b/docs/reference/kobo_unhcr_style_map.html
index ad06808..a4d2e0a 100644
--- a/docs/reference/kobo_unhcr_style_map.html
+++ b/docs/reference/kobo_unhcr_style_map.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -166,11 +166,16 @@ UNHCR ggplot2 theme
Value
Return UNHCR Style
+ Author
+
+ Edouard Legoupil -
Examples
-
diff --git a/docs/reference/kobo_unhcr_style_map_big.html b/docs/reference/kobo_unhcr_style_map_big.html
index 0bd07b2..b08695b 100644
--- a/docs/reference/kobo_unhcr_style_map_big.html
+++ b/docs/reference/kobo_unhcr_style_map_big.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -166,11 +166,16 @@ UNHCR ggplot2 theme
Value
Return UNHCR Style
+ Author
+
+ Edouard Legoupil -
Examples
-
diff --git a/docs/reference/kobo_unhcr_style_scatter.html b/docs/reference/kobo_unhcr_style_scatter.html
index 93b53fc..7e961cd 100644
--- a/docs/reference/kobo_unhcr_style_scatter.html
+++ b/docs/reference/kobo_unhcr_style_scatter.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -166,11 +166,16 @@ UNHCR ggplot2 theme
Value
Return UNHCR Style
+ Author
+
+ Edouard Legoupil - with inspiration from bbc
Examples
-
diff --git a/docs/reference/kobo_unhcr_style_scatter_big.html b/docs/reference/kobo_unhcr_style_scatter_big.html
index 2e08d6c..9f3b06b 100644
--- a/docs/reference/kobo_unhcr_style_scatter_big.html
+++ b/docs/reference/kobo_unhcr_style_scatter_big.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -166,11 +166,16 @@ UNHCR ggplot2 theme
Value
Return UNHCR Style
+ Author
+
+ Edouard Legoupil - with inspiration from bbc
Examples
-
diff --git a/docs/reference/kobo_weight.html b/docs/reference/kobo_weight.html
index 7074201..019c570 100644
--- a/docs/reference/kobo_weight.html
+++ b/docs/reference/kobo_weight.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Weight a datset
Automatically weight the data according to the information of 0-config.R
- kobo_weight(mainDir = "")
+ kobo_weight(mainDir = "")
Arguments
@@ -171,11 +171,17 @@ Arg
+ Author
+
+ Elliott Messeiller
Examples
-
diff --git a/docs/reference/ltbl.html b/docs/reference/ltbl.html
index 8e7c7c5..e7c204b 100644
--- a/docs/reference/ltbl.html
+++ b/docs/reference/ltbl.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Helper function to extract the last part of question headings
Helper function to extract the last part of question headings
- ltbl(x, y, z)
+ ltbl(x, y, z)
Arguments
@@ -182,11 +182,16 @@ Arg
Value
last part of question headings
+ Author
+
+ Someone
Examples
- if (FALSE) {
-ltbl(x,y,z)
-}
+ if (FALSE) {
+ltbl(x,y,z)
+}
+
+
diff --git a/docs/reference/multresponse.html b/docs/reference/multresponse.html
index 6b0b8ec..fb2e1b4 100644
--- a/docs/reference/multresponse.html
+++ b/docs/reference/multresponse.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Helper function to concatenate multiple choices (select_mutiple type questio
Helper function to concatenate multiple choices (select_mutiple type question) formatted TRUE / FALSE
- multresponse(x)
+ multresponse(x)
Arguments
@@ -174,11 +174,16 @@ Arg
Value
last part of question headings
+ Author
+
+ Someone
Examples
- if (FALSE) {
-multresponse(x)
-}
+ if (FALSE) {
+multresponse(x)
+}
+
+
diff --git a/docs/reference/psum.html b/docs/reference/psum.html
index ac82f42..82a6fb4 100644
--- a/docs/reference/psum.html
+++ b/docs/reference/psum.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Sum with NA
Helper function that will sum values even if we have NA
- psum(..., na.rm = FALSE)
+ psum(..., na.rm = FALSE)
Arguments
@@ -178,11 +178,16 @@ Arg
Value
Integer or numeric.
+ Author
+
+ Someone
Examples
-
diff --git a/docs/reference/pwd_parse.html b/docs/reference/pwd_parse.html
index 4c2cdf6..79ee0fb 100644
--- a/docs/reference/pwd_parse.html
+++ b/docs/reference/pwd_parse.html
@@ -84,7 +84,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -164,7 +164,7 @@ Parse Kobo Password
passed on to the authenticate
function from the "httr" package.
- pwd_parse(...)
+ pwd_parse(...)
Arguments
@@ -181,13 +181,17 @@ Note
This function is not intended to be called directly.
It is used in other functions.
+ Author
+
+ Ananda Mahto
Examples
-
diff --git a/docs/reference/round2.html b/docs/reference/round2.html
index 4be1381..672fe63 100644
--- a/docs/reference/round2.html
+++ b/docs/reference/round2.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Create roundup function
Create roundup function
- round2(x, n)
+ round2(x, n)
Arguments
@@ -178,11 +178,16 @@ Arg
Value
rounded figure.
+ Author
+
+ Someone
Examples
- if (FALSE) {
-round2(x, n)
-}
+ if (FALSE) {
+round2(x, n)
+}
+
+
diff --git a/docs/reference/round_preserve_sum.html b/docs/reference/round_preserve_sum.html
index 866e7a3..9958741 100644
--- a/docs/reference/round_preserve_sum.html
+++ b/docs/reference/round_preserve_sum.html
@@ -82,7 +82,7 @@
koboloadeR
- 0.1.7
+ 0.1.8
@@ -160,7 +160,7 @@ Helper function to round and preserve sum
Helper function to round and preserve sum
- round_preserve_sum(x, digits = 0)
+ round_preserve_sum(x, digits = 0)
Arguments
@@ -178,11 +178,16 @@ Arg
Value
value
+ Author
+
+ Someone http://biostatmatt.com/page/5
Examples
- if (FALSE) {
-round_preserve_sum(x,digits)
-}
+ if (FALSE) {
+round_preserve_sum(x,digits)
+}
+
+
diff --git a/inst/script/run-analysis.R b/inst/script/run-analysis.R
index 5b80c82..d2be7c6 100644
--- a/inst/script/run-analysis.R
+++ b/inst/script/run-analysis.R
@@ -1,63 +1,43 @@
-########################
-### Console Script #####
-########################
+#' @name build_analysis_package
+#' @rdname build_analysis_package
+#' @title Build the analysis project
+#'
+#' @description Function to build the analysis project.
+#' In order to start, you need to put both the data and the original xlsform within the data-raw folder
+#' you can adjust the function below and add as many output format as required
+#'
+#' @param form The full file name of the form to be accessed (not that it has to be an .xls format).
+#'
+#' @examples
+#' \dontrun{
+#' build_analysis_package("form.xls")
+#' }
+
+build_analysis_package <- function(form = "form.xls") {
+ require(koboloadeR)
+ ## Load & process Data - data in csv from the data-raw will be then save as .rda file in the data folder
+ kobo_load_data(form)
+ #### Generate Exploration Reports
+ kobo_crunching_report(form, output = "html", lang = "eng")
+
+ # add as many report generation format required: html, docx, pptx
+ ## you can also use aspx (in case you want to upload to sharepoint folder set to serve aspx) but will need before to edit file header and add manually -
+
+ ## Generate Cluster Report --> Discover
+ ## Report will based on variable cluster == "TRUE" - you need to set one variable as "id"
+ ## We use the root data frame -
+ # Assumption is that information from sub-hierachical frame was included through calculated indicators
+ # MainDataFrame <- load( "data/MainDataFrame_edited.rda")
+ # kobo_cluster_report(frame = MainDataFrame, form)
+}
+
+
+## Change here the precise name of the form if required
+form <- "form.xls"
+## Extend xlsform with required column if necessary - done only once!
+#kobo_prepare_form(form)
+
+## Now generate everything
+build_analysis_package(form)
-library(koboloadeR)
-
-#### Phase 1: Project Configurationn #############
-## Configure name of the xlsform that exist under data folder
-# - Change if required but better to keep the defautl one
-form <- "form.xls"
-
-## Extend xlsform with necessary column
-kobo_prepare_form(form)
-
-### Eventually Generate dummy data (uncomment below if required)
-# kobo_dummy(form)
-
-######################################################################################
-### At this stage you can start working on your xlsform and fill it accordingly!!! ###
-######################################################################################
-
-
-#### Phase 2: Analysis Plan ###############################
-kobo_check_analysis_plan(form)
-
-
-#### Phase 3: Load & process Data ###############################
-kobo_load_data(form)
-
-
-
-#### Phase 4: Generate Analysis Reports ###############################
-
-## Generate Crunching Report --> Describe
-## For disaggregation of variable indicate "facet","stak", "fill" or "dodge"
-## for test of correlation on select_one variable use correlation = TRUE
-kobo_crunching_report(form, output = "docx", lang = "eng")
-#kobo_crunching_report(form, output = "html", lang = "eng")
-
-## In case you want to upload to sharepoint folder set to serve aspx
-## Need before to edit file header and add manually -
-#kobo_crunching_report(form, output = "aspx", lang = "eng")
-#kobo_crunching_report(form, output = "pptx", lang = "eng")
-
-## Generate Cluster Report --> Discover
-## Report will based on variable cluster == "TRUE" - you need to set one variable as "id"
-## We use the root data frame -
-# Assumption is that information from sub-hierachical frame was included through calculated indicators
-MainDataFrame <- read.csv( "data/MainDataFrame_edited.csv")
-kobo_cluster_report(frame = MainDataFrame, form)
-
-## Generate Prediction Report --> Predict
-
-## Generate Scoring Report --> Prescribe
-
-
-#### Phase 5: Statistical Disclosure control & Indicator sharing ###############################
-## Generate Anonymisation Report
-## We use the root data frame -
-# Assumption is that information from sub-hierachical frame was included through calculated indicators
-MainDataFrame <- read.csv( "data/MainDataFrame_edited.csv")
-kobo_anonymisation_report(frame = MainDataFrame, form)
diff --git a/man/kobo_create_indicators.Rd b/man/kobo_create_indicators.Rd
index 2d6bf94..9073585 100644
--- a/man/kobo_create_indicators.Rd
+++ b/man/kobo_create_indicators.Rd
@@ -8,7 +8,7 @@ kobo_create_indicators(form = "form.xls")
}
\arguments{
\item{form}{The full filename of the form to be accessed (xls or xlsx file).
-It is assumed that the form is stored in the data folder.}
+It is assumed that the form is stored in the data-raw folder.}
}
\value{
No return, all results will be saved inside new CSV files
diff --git a/man/kobo_crunching_report.Rd b/man/kobo_crunching_report.Rd
index b64b18d..0bc3efb 100644
--- a/man/kobo_crunching_report.Rd
+++ b/man/kobo_crunching_report.Rd
@@ -14,7 +14,8 @@ kobo_crunching_report(
}
\arguments{
\item{form}{The full filename of the form to be accessed (xls or xlsx file).
-It is assumed that the form is stored in the data folder.}
+
+It is assumed that the form is stored in the data-raw folder.}
\item{app}{The place where the function has been executed, the default is the console and the second option is the shiny app}
@@ -29,6 +30,7 @@ No return, All results will be saved on RMD files and Word files
}
\description{
Generate crunching Report that contains all descriptive statistics, correlation analysis, tabulation and data visualization for variables and indicators.
+ For disaggregation of variable indicate "facet","stak", "fill" or "dodge". for test of correlation on select_one variable use correlation = TRUE
}
\examples{
\dontrun{
From b4615df316f89830e56914240baedfc5944e6336 Mon Sep 17 00:00:00 2001
From: Hisham Galal
Date: Wed, 21 Oct 2020 11:11:49 -0500
Subject: [PATCH 02/12] Add error bars for select_one questions.
---
R/kobo_crunching_report.R | 1 +
1 file changed, 1 insertion(+)
diff --git a/R/kobo_crunching_report.R b/R/kobo_crunching_report.R
index 6aecb5d..b6d481a 100644
--- a/R/kobo_crunching_report.R
+++ b/R/kobo_crunching_report.R
@@ -880,6 +880,7 @@ kobo_crunching_report <- function(form = "form.xls",
cat(paste0("## and now the graph"),file = report.name ,sep = "\n", append = TRUE)
cat(paste0("plot1 <- ggplot(frequ3, aes(x = frequ3$Var1, y = frequ3$mean)) +"),file = report.name ,sep = "\n", append = TRUE)
cat(paste0("geom_bar(fill = \"#2a87c8\", colour = \"#2a87c8\", stat = \"identity\", width = .8) +"),file = report.name ,sep = "\n", append = TRUE)
+ cat(paste0("geom_errorbar(aes(ymin = mean-SE, ymax = mean+SE)) +"),file = report.name ,sep = "\n", append = TRUE)
cat(paste0("guides(fill = FALSE) +"),file = report.name ,sep = "\n", append = TRUE)
cat(paste0("geom_label_repel(aes(y = mean, label = freqper2), fill = \"#2a87c8\", color = 'white') +"),file = report.name ,sep = "\n", append = TRUE)
cat(paste0("ylab(\"Frequency\") +"),file = report.name ,sep = "\n", append = TRUE)
From 4a0934bf2e063886943e09efb272cfd9d841955d Mon Sep 17 00:00:00 2001
From: Hisham Galal
Date: Wed, 21 Oct 2020 11:21:25 -0500
Subject: [PATCH 03/12] groundwork for kobo-RIDL synchronization
---
DESCRIPTION | 7 ++-
NAMESPACE | 1 +
R/kobo_edit_ridl_metadata.R | 108 ++++++++++++++++++++++++++++++++++++
R/kobo_prepare_form.R | 85 ++++++++++++++++++++++++++--
R/koboloadeR-package.R | 9 +++
inst/rstudio/addins.dcf | 4 ++
man/koboloadeR-package.Rd | 34 ++++++++++++
7 files changed, 242 insertions(+), 6 deletions(-)
create mode 100644 R/kobo_edit_ridl_metadata.R
create mode 100644 R/koboloadeR-package.R
create mode 100644 inst/rstudio/addins.dcf
create mode 100644 man/koboloadeR-package.Rd
diff --git a/DESCRIPTION b/DESCRIPTION
index 3e19d59..ef4dc22 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -89,7 +89,12 @@ Imports:
VIM,
viridis,
xgboost,
- xlsx
+ xlsx,
+ jsonlite,
+ magrittr,
+ tibble,
+ miniUI,
+ ckanr
Suggests:
testthat (>= 2.1.0)
VignetteBuilder:
diff --git a/NAMESPACE b/NAMESPACE
index da80921..ce55442 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -68,3 +68,4 @@ import(RCurl)
import(httr)
import(plyr)
import(readxl)
+importFrom(magrittr,"%>%")
diff --git a/R/kobo_edit_ridl_metadata.R b/R/kobo_edit_ridl_metadata.R
new file mode 100644
index 0000000..121055c
--- /dev/null
+++ b/R/kobo_edit_ridl_metadata.R
@@ -0,0 +1,108 @@
+#' @export
+kobo_edit_ridl_metadata <- function(form = "data/form.xls") {
+ ui <- miniUI::miniPage(
+ miniUI::gadgetTitleBar(
+ "RIDL Metadata",
+ left = miniUI::miniTitleBarCancelButton(),
+ right = miniUI::miniTitleBarButton("done", "Done", primary = TRUE)),
+ miniUI::miniContentPanel(shiny::div(id = "form"))
+ )
+
+ server <- function(input, output, session) {
+ if (! "ridl-metadata" %in% readxl::excel_sheets(form) |
+ ! "ridl-choices" %in% readxl::excel_sheets(form))
+ stop("Please run kobo_prepare_form() first. Aborting...")
+
+ ridl_metadata <- readxl::read_excel(form, sheet = "ridl-metadata")
+ ridl_choices <- readxl::read_excel(form, sheet = "ridl-choices")
+
+ as.input <- function(...) {
+ if (list(...)$type == "text") {
+ f <-
+ if (stringr::str_detect(list(...)$name, "notes"))
+ shiny::textAreaInput
+ else
+ shiny::textInput
+
+ do.call(f, list(inputId = list(...)$name,
+ label =
+ shiny::span(list(...)$label,
+ shiny::span(dplyr::if_else(!is.na(list(...)$required), "*", ""),
+ style = "color: red;",
+ .noWS = "before"),
+ .noWS = "inside"),
+ value = if (!is.na(list(...)$value)) list(...)$value else "",
+ placeholder = list(...)$hint))
+ } else {
+ shiny::selectizeInput(
+ inputId = list(...)$name,
+ label =
+ shiny::span(list(...)$label,
+ shiny::span(dplyr::if_else(!is.na(list(...)$required), "*", ""),
+ style = "color: red;",
+ .noWS = "before"),
+ .noWS = "inside"),
+ choices =
+ ridl_choices %>%
+ dplyr::filter(list_name == list(...)$name) %>%
+ { purrr::set_names(.$name, .$label) } %>%
+ { c("Blank" = "", .) },
+ selected =
+ if(is.na(list(...)$value))
+ NULL
+ else
+ stringr::str_split(list(...)$value, pattern = "\\s*,\\s*")[[1]],
+ multiple = stringr::str_detect(list(...)$type, "multiple")
+ )
+ }
+ }
+
+ purrr::pmap(ridl_metadata, as.input) %>%
+ purrr::walk(~shiny::insertUI("#form", "beforeEnd", .))
+
+ shiny::observeEvent(input$done, {
+ inputs <-
+ input %>%
+ shiny::reactiveValuesToList() %>%
+ tibble::enframe() %>%
+ dplyr::filter(name != "cancel", name != "done") %>%
+ dplyr::mutate(
+ value =
+ purrr::map_chr(value,
+ ~dplyr::if_else(is.null(.), '', stringr::str_c(., collapse = ", "))))
+ # ~stringr::str_c(dplyr::if_else(is.null(.), '', .), sep = ", ")))
+
+ ridl_metadata <-
+ ridl_metadata %>%
+ dplyr::select(-value) %>%
+ dplyr::left_join(inputs, by = "name") %>%
+ as.data.frame()
+
+ wb <- xlsx::loadWorkbook(form)
+ sheetname <- "ridl-metadata"
+ if (!is.null(xlsx::getSheets(wb)[[sheetname]]))
+ xlsx::removeSheet(wb, sheetname)
+
+ ridl_sheet <- xlsx::createSheet(wb, sheetname)
+ xlsx::addDataFrame(ridl_metadata, ridl_sheet, col.names = TRUE, row.names = FALSE)
+ rows <- xlsx::getRows(ridl_sheet)
+ cells <- xlsx::getCells(rows)
+ headerSt <- xlsx::CellStyle(wb) +
+ xlsx::Font(wb, isBold = TRUE, isItalic = FALSE, color = "white", heightInPoints = 13) +
+ xlsx::Fill(backgroundColor = "GREY_50_PERCENT", foregroundColor = "GREY_50_PERCENT",
+ pattern = "SOLID_FOREGROUND") +
+ xlsx::Border(color = "GREY_80_PERCENT", position = c("TOP", "BOTTOM"), "BORDER_THIN")
+ highlight <- paste("1", c(1:length(ridl_metadata)), sep = ".")
+ lapply(names(cells[highlight]),
+ function(ii) xlsx::setCellStyle(cells[[ii]], headerSt))
+ xlsx::autoSizeColumn(ridl_sheet, 1:length(ridl_metadata))
+
+ if (file.exists(form)) file.remove(form)
+ xlsx::saveWorkbook(wb, form)
+
+ shiny::stopApp(TRUE)
+ })
+ }
+
+ shiny::runGadget(shiny::shinyApp(ui, server), viewer = shiny::paneViewer())
+}
diff --git a/R/kobo_prepare_form.R b/R/kobo_prepare_form.R
index 4a56641..eebcd89 100644
--- a/R/kobo_prepare_form.R
+++ b/R/kobo_prepare_form.R
@@ -1094,14 +1094,89 @@ kobo_prepare_form <- function(form = "form.xls") {
xlsx::autoSizeColumn(indicatorSheet, 1:length(survey))
cat("\n******************** Indicator sheet, ready to be used *********************\n \n")
-
+ cat("############################### \n")
+ cat("### Checking now RIDL sheets ## \n")
+ cat("############################### \n")
+
+ ridl_schema <- jsonlite::fromJSON("https://raw.githubusercontent.com/okfn/ckanext-unhcr/master/ckanext/unhcr/schemas/dataset.json")
+
+ ridl_dataset_fields <- ridl_schema$dataset_fields # %>% tibble::as_tibble()
+ ridl_resource_fields <- ridl_schema$resource_fields # %>% tibble::as_tibble()
+
+ ridl_choices <-
+ ridl_dataset_fields %>%
+ dplyr::mutate(choices = purrr::map(choices, as.data.frame)) %>%
+ dplyr::select(field_name, choices) %>%
+ tidyr::unnest(choices) %>%
+ dplyr::select(list_name = field_name, name = value, label) %>%
+ as.data.frame()
+
+ ridl_metadata <-
+ ridl_dataset_fields %>%
+ dplyr::transmute(
+ type =
+ dplyr::case_when(
+ preset == "multiple_select" ~ stringr::str_c("select_multiple", field_name, sep = " "),
+ field_name %in% ridl_choices$list_name ~ stringr::str_c("select_one", field_name, sep = " "),
+ TRUE ~ "text"),
+ name = field_name,
+ label,
+ required,
+ hint = dplyr::if_else(!is.na(help_text), help_text, form_placeholder),
+ value = "")
+
+ sheetname <- "ridl-metadata"
+ if (sheetname %in% readxl::excel_sheets(form_tmp)) {
+ ridl_metadata <-
+ ridl_metadata %>%
+ dplyr::select(-value) %>%
+ dplyr::left_join(readxl::read_excel(form_tmp, sheet = sheetname) %>% dplyr::select(name, value), by = "name")
+ }
+
+ if (!is.null(xlsx::getSheets(wb)[[sheetname]]))
+ xlsx::removeSheet(wb, sheetname)
+
+ ridl_sheet <- xlsx::createSheet(wb, sheetname)
+ xlsx::addDataFrame(ridl_metadata, ridl_sheet, col.names = TRUE, row.names = FALSE)
+ rows <- xlsx::getRows(ridl_sheet)
+ cells <- xlsx::getCells(rows)
+ headerSt <- xlsx::CellStyle(wb) +
+ xlsx::Font(wb, isBold = TRUE, isItalic = FALSE, color = "white", heightInPoints = 13) +
+ xlsx::Fill(backgroundColor = "GREY_50_PERCENT", foregroundColor = "GREY_50_PERCENT",
+ pattern = "SOLID_FOREGROUND") +
+ xlsx::Border(color = "GREY_80_PERCENT", position = c("TOP", "BOTTOM"), "BORDER_THIN")
+ highlight <- paste("1", c(1:length(ridl_metadata)), sep = ".")
+ lapply(names(cells[highlight]),
+ function(ii) xlsx::setCellStyle(cells[[ii]], headerSt))
+ xlsx::autoSizeColumn(ridl_sheet, 1:length(ridl_metadata))
+
+ sheetname <- "ridl-choices"
+ if (!is.null(xlsx::getSheets(wb)[[sheetname]]))
+ xlsx::removeSheet(wb, sheetname)
+
+ ridl_sheet <- xlsx::createSheet(wb, sheetname)
+ xlsx::addDataFrame(ridl_choices, ridl_sheet, col.names = TRUE, row.names = FALSE)
+
+ rows <- xlsx::getRows(ridl_sheet)
+ cells <- xlsx::getCells(rows)
+ headerSt <- xlsx::CellStyle(wb) +
+ xlsx::Font(wb, isBold = TRUE, isItalic = FALSE, color = "white", heightInPoints = 13) +
+ xlsx::Fill(backgroundColor = "GREY_50_PERCENT", foregroundColor = "GREY_50_PERCENT",
+ pattern = "SOLID_FOREGROUND") +
+ xlsx::Border(color = "GREY_80_PERCENT", position = c("TOP", "BOTTOM"), "BORDER_THIN")
+ highlight <- paste("1", c(1:length(ridl_choices)), sep = ".")
+ lapply(names(cells[highlight]),
+ function(ii) xlsx::setCellStyle(cells[[ii]], headerSt))
+ xlsx::autoSizeColumn(ridl_sheet, 1:length(ridl_choices))
+
+ cat("\n******************** RIDL sheets, ready to be used *********************\n \n")
+
if (file.exists(form_tmp)) file.remove(form_tmp)
xlsx::saveWorkbook(wb, form_tmp)
-
-
+
+
cat("\n******************** The XLSFORM has now been extended to include your analysis plan *********************\n \n")
-
-
+
}, error = function(err) {
print("There was an error in the xlsform preparation step!!! \n\n")
return(structure(err, class = "try-error"))
diff --git a/R/koboloadeR-package.R b/R/koboloadeR-package.R
new file mode 100644
index 0000000..cf2467a
--- /dev/null
+++ b/R/koboloadeR-package.R
@@ -0,0 +1,9 @@
+#' @keywords internal
+"_PACKAGE"
+
+# The following block is used by usethis to automatically manage
+# roxygen namespace tags. Modify with care!
+## usethis namespace: start
+#' @importFrom magrittr %>%
+## usethis namespace: end
+NULL
diff --git a/inst/rstudio/addins.dcf b/inst/rstudio/addins.dcf
new file mode 100644
index 0000000..2fc885e
--- /dev/null
+++ b/inst/rstudio/addins.dcf
@@ -0,0 +1,4 @@
+Name: RIDL Metadata Editor
+Description: Launch Shiny app to edit RIDL metadata
+Binding: kobo_edit_ridl_metadata
+Interactive: true
diff --git a/man/koboloadeR-package.Rd b/man/koboloadeR-package.Rd
new file mode 100644
index 0000000..c930073
--- /dev/null
+++ b/man/koboloadeR-package.Rd
@@ -0,0 +1,34 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/koboloadeR-package.R
+\docType{package}
+\name{koboloadeR-package}
+\alias{koboloadeR}
+\alias{koboloadeR-package}
+\title{koboloadeR: A Metapackage for Survey Data Crunching}
+\description{
+An organized workflow generating 'Rmd' files from an extended 'xlsform' questionnaire structure to facilitate survey data crunching.
+}
+\seealso{
+Useful links:
+\itemize{
+ \item \url{https://unhcr.github.io/koboloadeR/docs/}
+ \item Report bugs at \url{https://github.com/unhcr/koboloadeR/issues}
+}
+
+}
+\author{
+\strong{Maintainer}: Edouard Legoupil \email{legoupil@unhcr.org}
+
+Authors:
+\itemize{
+ \item Maher Daoud \email{daoudma@unhcr.org}
+}
+
+Other contributors:
+\itemize{
+ \item Elliott Messeiller \email{elliott.messeiller@acted.org} [contributor]
+ \item Damien Seite \email{damien.seite@eleve.ensai.fr} [contributor]
+}
+
+}
+\keyword{internal}
From d513f84875189eb3909a58aaac057a5e3b843fb1 Mon Sep 17 00:00:00 2001
From: edouard-legoupil
Date: Thu, 29 Oct 2020 11:41:16 -0500
Subject: [PATCH 04/12] rev
---
R/kobo_projectinit.R | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/R/kobo_projectinit.R b/R/kobo_projectinit.R
index 11834d6..7f852d7 100644
--- a/R/kobo_projectinit.R
+++ b/R/kobo_projectinit.R
@@ -9,7 +9,7 @@
#'
#' @export kobo_projectinit
#'
-#' @author Edouard Legoupil, Elliott MEesseiller
+#' @author Edouard Legoupil, Elliott Messeiller
#'
#' @examples
#' \dontrun{
From 7abd37120e2d6d4758fd6af867d0d0d09936b66c Mon Sep 17 00:00:00 2001
From: edouard-legoupil
Date: Thu, 29 Oct 2020 11:48:31 -0500
Subject: [PATCH 05/12] reverted to save as csv -- issue with duplicated
variable name to fix
---
R/kobo_create_indicators.R | 40 +++++++++++++++++++-------------------
R/kobo_crunching_report.R | 32 +++++++++++++++---------------
R/kobo_dico.R | 4 ++--
3 files changed, 38 insertions(+), 38 deletions(-)
diff --git a/R/kobo_create_indicators.R b/R/kobo_create_indicators.R
index 90498cb..4307dbb 100644
--- a/R/kobo_create_indicators.R
+++ b/R/kobo_create_indicators.R
@@ -46,8 +46,8 @@ kobo_create_indicators <- function(form = "form.xls") {
## Check if there's a repeat - aka hierarchical structure in the dataset
if (length(dataBeginRepeat) > 0) {
for (dbr in dataBeginRepeat) {
- # dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
- load(paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
+ dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
+ #load(paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
assign(dbr, dataFrame)
}
@@ -61,8 +61,8 @@ kobo_create_indicators <- function(form = "form.xls") {
## Load data & dico #############################################################################
#form <- "form.xls"
## Run this only after data cleaning
- # dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
- load(paste(mainDir,"/data/dico_",form,".rda",sep = ""))
+ dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
+ #load(paste(mainDir,"/data/dico_",form,".rda",sep = ""))
## Create the dicotemp #############################################################################
#names(dico)
dicotemp <- data.frame(c("trigger"))
@@ -126,14 +126,14 @@ kobo_create_indicators <- function(form = "form.xls") {
cat('dataBeginRepeat <- kobo_get_begin_repeat(form)', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
cat('dataBeginRepeat <- dataBeginRepeat$names', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
- # cat('MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), encoding = "UTF-8", na.strings = "NA")', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
- cat('load(paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+ cat('MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), encoding = "UTF-8", na.strings = "NA")', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+ #cat('load(paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
## Check if there's a repeat - aka hierarchical structure in the dataset
if (length(dataBeginRepeat) > 0) {
cat('for (dbr in dataBeginRepeat) {
- #dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
- load(paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
+ dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
+ #load(paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
assign(paste0(dbr,"_edited"), dataFrame) }', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
}
@@ -241,8 +241,8 @@ kobo_create_indicators <- function(form = "form.xls") {
dicotemp <- rbind(dicotemp,dicotemp1)
}
- # cat('utils::write.csv(MainDataFrame, paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), row.names = FALSE, na = "")', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
- cat('save(MainDataFrame, file = paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+ cat('utils::write.csv(MainDataFrame, paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), row.names = FALSE, na = "")', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
+ #cat('save(MainDataFrame, file = paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))', file = paste0(mainDir,"/R/build_indicator.R") , sep = "\n", append = TRUE)
source(paste0(mainDir,"/R/build_indicator.R"))
@@ -421,8 +421,8 @@ kobo_create_indicators <- function(form = "form.xls") {
rm(dicotemp,dicotemp1, choices, choices2, choices3, dicotemp.choice)
- # MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), encoding = "UTF-8", na.strings = "NA")
- load(paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))
+ MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), encoding = "UTF-8", na.strings = "NA")
+ #load(paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))
## label Variables
cat("\n\n quick check on labeling\n")
@@ -431,21 +431,21 @@ kobo_create_indicators <- function(form = "form.xls") {
## Check if there's a repeat - aka hierarchical structure in the dataset
if (length(dataBeginRepeat) > 0) {
for (dbr in dataBeginRepeat) {
- #dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
- load(paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
+ dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
+ #load(paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
dataFrame <- kobo_label(dataFrame, dico)
- #utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""), row.names = FALSE, na = "")
- save(dataFrame , file = paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
+ utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""), row.names = FALSE, na = "")
+ #save(dataFrame , file = paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
}
}
cat("\n\nWrite dico\n")
- # utils::write.csv(dico, paste0(mainDir,"/data/dico_",form,".csv"), row.names = FALSE, na = "")
+ utils::write.csv(dico, paste0(mainDir,"/data/dico_",form,".csv"), row.names = FALSE, na = "")
+ # save(dico, file = paste0(mainDir,"/data/dico_",form,".rda"))
- # utils::write.csv(MainDataFrame, paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), row.names = FALSE, na = "")
+ utils::write.csv(MainDataFrame, paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), row.names = FALSE, na = "")
- save(dico, file = paste0(mainDir,"/data/dico_",form,".rda"))
- save(MainDataFrame, file = paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))
+ #save(MainDataFrame, file = paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))
}
diff --git a/R/kobo_crunching_report.R b/R/kobo_crunching_report.R
index 5c69a0e..0760c30 100644
--- a/R/kobo_crunching_report.R
+++ b/R/kobo_crunching_report.R
@@ -57,8 +57,8 @@ kobo_crunching_report <- function(form = "form.xls",
### Load the data
cat("\n\n Loading data. It is assumed that the cleaning, weighting & re-encoding has been done previously \n")
- #MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_encoded.csv",sep = ""), encoding = "UTF-8", na.strings = "")
- load(paste(mainDir,"/data/MainDataFrame_encoded.rda",sep = ""))
+ MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_encoded.csv",sep = ""), encoding = "UTF-8", na.strings = "")
+ #load(paste(mainDir,"/data/MainDataFrame_encoded.rda",sep = ""))
# Form ##########################################
@@ -70,8 +70,8 @@ kobo_crunching_report <- function(form = "form.xls",
#kobo_dico(form)
## Load dictionary
- #dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
- load(paste0(mainDir,"/data/dico_",form,".rda"))
+ dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
+ #load(paste0(mainDir,"/data/dico_",form,".rda"))
#rm(form)
@@ -92,8 +92,8 @@ kobo_crunching_report <- function(form = "form.xls",
## Check if there's a repeat - aka hierarchical structure in the dataset
if (length(dataBeginRepeat) > 0) {
for (dbr in dataBeginRepeat) {
- #dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_encoded.csv",sep = ""),stringsAsFactors = F)
- load(paste(mainDir,"/data/",dbr,"_encoded.rda",sep = ""))
+ dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_encoded.csv",sep = ""),stringsAsFactors = F)
+ #load(paste(mainDir,"/data/",dbr,"_encoded.rda",sep = ""))
assign(dbr, kobo_label(dataFrame, dico))
if (app == "shiny") {
progress$set(message = paste("Labelling variables in",dbr,"File in progress..."))
@@ -144,8 +144,8 @@ kobo_crunching_report <- function(form = "form.xls",
names(reports)[1] <- "Report"
- #utils::write.csv(reports, paste(mainDir,"/data/reports.csv",sep = ""), row.names = FALSE, na = "")
- save(reports, file = paste(mainDir,"/data/reports.rda",sep = ""))
+ utils::write.csv(reports, paste(mainDir,"/data/reports.csv",sep = ""), row.names = FALSE, na = "")
+ #save(reports, file = paste(mainDir,"/data/reports.rda",sep = ""))
## For each Report: create a Rmd file -------
@@ -273,23 +273,23 @@ kobo_crunching_report <- function(form = "form.xls",
cat("## Provide below the name of the form in xsl form - format should be xls not xlsx", file = report.name , sep = "\n", append = TRUE)
cat(paste0("form <- \"",form,"\""), file = report.name , sep = "\n", append = TRUE)
- #cat("dico <- utils::read.csv(paste0(mainDirroot,\"/data/dico_\",form,\".csv\"), encoding = \"UTF-8\", na.strings = \"\")", file = report.name , sep = "\n", append = TRUE)
- cat("load(paste0(mainDirroot,\"/data/dico_\",form,\".rda\"))", file = report.name , sep = "\n", append = TRUE)
+ cat("dico <- utils::read.csv(paste0(mainDirroot,\"/data/dico_\",form,\".csv\"), encoding = \"UTF-8\", na.strings = \"\")", file = report.name , sep = "\n", append = TRUE)
+ #cat("load(paste0(mainDirroot,\"/data/dico_\",form,\".rda\"))", file = report.name , sep = "\n", append = TRUE)
## TO DO: Use config file to load the different frame
- #cat("MainDataFrame <- utils::read.csv(paste0(mainDirroot,\"/data/MainDataFrame_encoded.csv\"), encoding = \"UTF-8\", na.strings = \"\")", file = report.name , sep = "\n", append = TRUE)
- cat("load(paste0(mainDirroot,\"/data/MainDataFrame_encoded.rda\"))", file = report.name , sep = "\n", append = TRUE)
+ cat("MainDataFrame <- utils::read.csv(paste0(mainDirroot,\"/data/MainDataFrame_encoded.csv\"), encoding = \"UTF-8\", na.strings = \"\")", file = report.name , sep = "\n", append = TRUE)
+ #cat("load(paste0(mainDirroot,\"/data/MainDataFrame_encoded.rda\"))", file = report.name , sep = "\n", append = TRUE)
## Check if there's a repeat - aka hierarchical structure in the dataset
if (length(dataBeginRepeat) > 0) {
for (dbr in dataBeginRepeat) {
- #cat(paste(dbr, " <- utils::read.csv(paste0(mainDirroot,\"/data/",dbr,"_encoded.csv\"), encoding = \"UTF-8\", na.strings = \"\")", sep = ""), file = report.name , sep = "\n", append = TRUE)
+ cat(paste(dbr, " <- utils::read.csv(paste0(mainDirroot,\"/data/",dbr,"_encoded.csv\"), encoding = \"UTF-8\", na.strings = \"\")", sep = ""), file = report.name , sep = "\n", append = TRUE)
- cat(paste("load(paste0(mainDirroot,\"/data/",dbr,"_encoded.rda\"))", sep = ""), file = report.name , sep = "\n", append = TRUE)
+ #cat(paste("load(paste0(mainDirroot,\"/data/",dbr,"_encoded.rda\"))", sep = ""), file = report.name , sep = "\n", append = TRUE)
}
}
@@ -2062,8 +2062,8 @@ kobo_crunching_report <- function(form = "form.xls",
#rm(list = ls())
kobo_load_packages()
mainDir <- kobo_getMainDirectory()
- #reports <- utils::read.csv(paste(mainDir,"/data/reports.csv",sep = ""), encoding = "UTF-8", na.strings = "")
- load(paste(mainDir,"/data/reports.rda",sep = ""))
+ reports <- utils::read.csv(paste(mainDir,"/data/reports.csv",sep = ""), encoding = "UTF-8", na.strings = "")
+ #load(paste(mainDir,"/data/reports.rda",sep = ""))
### Render now all reports
cat(" Render now reports... \n")
for (i in 1:nrow(reports)) {
diff --git a/R/kobo_dico.R b/R/kobo_dico.R
index 2ba0abb..2b5a9be 100644
--- a/R/kobo_dico.R
+++ b/R/kobo_dico.R
@@ -600,8 +600,8 @@ kobo_dico <- function(form = "form.xls") {
#} else { dico$type <- dico$type
# cat("Note that select_one & select_multiple questions within REPEAT part are converted to integer (results are summed up).\n")
- #utils::write.csv(dico, paste0(mainDir,"/data/dico_",form,".csv"), row.names = FALSE, na = "")
- save(dico, file = paste0(mainDir,"/data/dico_",form,".rda"))
+ utils::write.csv(dico, paste0(mainDir,"/data/dico_",form,".csv"), row.names = FALSE, na = "")
+ #save(dico, file = paste0(mainDir,"/data/dico_",form,".rda"))
# f_csv(dico)
# return(dico)
}
From ca5aa2b08941a4b658dd4d2c8e6cab23aaee6de4 Mon Sep 17 00:00:00 2001
From: Hisham Galal
Date: Sat, 31 Oct 2020 19:41:02 -0500
Subject: [PATCH 06/12] Submit to RIDL.
---
R/kobo_ridl.R | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 114 insertions(+)
create mode 100644 R/kobo_ridl.R
diff --git a/R/kobo_ridl.R b/R/kobo_ridl.R
new file mode 100644
index 0000000..217a0fc
--- /dev/null
+++ b/R/kobo_ridl.R
@@ -0,0 +1,114 @@
+ridl <- function(action, ...) {
+ httr::POST(glue::glue("https://ridl.unhcr.org/api/action/{action}"),
+ httr::add_headers("Authorization" = Sys.getenv("RIDL_API_KEY")),
+ body = rlang::list2(...)) %>%
+ httr::content() %>%
+ purrr::pluck("result")
+}
+
+#' @export
+kobo_submit_ridl_resource <- function(pkg, ...) {
+ metadata <- list(...)
+
+ rid <- NULL
+ if (!purrr::is_empty(pkg$resources)) {
+ rid <-
+ purrr::transpose(pkg$resources) %>%
+ tibble::as_tibble() %>%
+ dplyr::filter(name == metadata$name) %>%
+ purrr::pluck("id", 1)
+ }
+
+ action <- if(purrr::is_empty(rid)) "resource_create" else "resource_update"
+
+ r <- ridl(action,
+ !!!purrr::list_modify(metadata,
+ package_id = pkg$name,
+ clear_upload = "",
+ url = fs::path_file(metadata$url),
+ url_type = "upload"))
+
+ rid <- r$id
+
+ r <- ridl("cloudstorage_initiate_multipart",
+ id = rid, name = fs::path_file(metadata$url), size = as.numeric(fs::file_size(metadata$url)))
+
+ uid <- r$id
+
+ r <- ridl("cloudstorage_upload_multipart",
+ id = rid, uploadId = uid, partNumber = 1, upload = httr::upload_file(metadata$url))
+
+ r <- ridl("cloudstorage_finish_multipart",
+ id = rid, uploadId = uid, save_action = "go-dataset-complete")
+}
+
+#' @export
+kobo_submit_ridl_package <- function(metadata, resources) {
+ metadata <- metadata %>% dplyr::filter(!is.na(value))
+ metadata <-
+ purrr::set_names(metadata$value, metadata$name) %>%
+ purrr::map2(metadata$type, ~if (stringr::str_detect(.y, "multi")) {stringr::str_split(.x, ", ")[[1]]} else {.x})
+
+ pkg <-
+ ridl("package_search", q = glue::glue("name:{metadata$name}")) %>%
+ purrr::pluck("results", 1)
+
+ action <- if (purrr::is_empty(pkg)) "package_create" else "package_update"
+
+ pkg <- ridl(action, !!!metadata)
+
+ purrr::pwalk(resources, kobo_submit_ridl_resource, pkg = pkg)
+}
+
+#' @export
+kobo_submit_to_ridl <- function(formf = "data/form.xls", dataf = "data/data.json") {
+ metadata <- formf %>% readxl::read_excel(sheet = "ridl-metadata")
+
+ data <-
+ jsonlite::fromJSON(dataf)$results %>%
+ tibble::as_tibble(.name_repair = ~stringr::str_replace_all(., "(\\/)", "."))
+
+ prep_submission <- function(ridl_container, ridl_dataset, data) {
+ # FIXME: add support for repeating groups
+ dataf <- fs::path(tempdir(), "data.csv")
+ data %>%
+ dplyr::select(tidyselect::vars_select_helpers$where(is.atomic)) %>%
+ readr::write_csv(dataf)
+
+ resources.data <-
+ tibble::tibble(
+ type = "data",
+ url = dataf,
+ name = "data.csv",
+ description = "Raw extract from KoBo",
+ format = "csv",
+ file_type = "microdata",
+ date_range_start = as.Date(data$start) %>% min() %>% as.character(),
+ date_range_end = as.Date(data$end) %>% max() %>% as.character(),
+ version = Sys.Date() %>% as.character(),
+ `hxl-ated` = "False",
+ process_status = "raw",
+ identifiability = "personally_identifiable")
+
+ resources.meta <-
+ tibble::tibble(
+ type = "attachment",
+ url = formf,
+ name = "form.xls",
+ description = "XLSform",
+ format = "xls",
+ file_type = "questionnaire")
+
+ tibble(
+ metadata = list(dplyr::mutate(dplyr::rowwise(metadata), value = glue::glue(value, .na = NULL))),
+ resources = list(dplyr::bind_rows(resources.data, resources.meta)))
+ }
+
+ submissions <-
+ data %>%
+ tidyr::nest(data = -c(ridl_container, ridl_dataset)) %>%
+ dplyr::filter(!is.na(ridl_container), !is.na(ridl_dataset)) %>%
+ purrr::pmap_dfr(prep_submission)
+
+ submissions %>% purrr::pwalk(kobo_submit_ridl_package)
+}
From 5cfcc86200725c24f09b00acab6f1775fff2d562 Mon Sep 17 00:00:00 2001
From: galalH <10104605+galalH@users.noreply.github.com>
Date: Tue, 3 Nov 2020 09:20:19 -0500
Subject: [PATCH 07/12] allow submissions when ridl_container and/or
ridl_dataset are missing from the data
---
R/kobo_ridl.R | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/R/kobo_ridl.R b/R/kobo_ridl.R
index 217a0fc..fa24914 100644
--- a/R/kobo_ridl.R
+++ b/R/kobo_ridl.R
@@ -68,7 +68,7 @@ kobo_submit_to_ridl <- function(formf = "data/form.xls", dataf = "data/data.json
jsonlite::fromJSON(dataf)$results %>%
tibble::as_tibble(.name_repair = ~stringr::str_replace_all(., "(\\/)", "."))
- prep_submission <- function(ridl_container, ridl_dataset, data) {
+ prep_submission <- function(ridl_container = NULL, ridl_dataset = NULL, data) {
# FIXME: add support for repeating groups
dataf <- fs::path(tempdir(), "data.csv")
data %>%
@@ -99,15 +99,15 @@ kobo_submit_to_ridl <- function(formf = "data/form.xls", dataf = "data/data.json
format = "xls",
file_type = "questionnaire")
- tibble(
+ tibble::tibble(
metadata = list(dplyr::mutate(dplyr::rowwise(metadata), value = glue::glue(value, .na = NULL))),
resources = list(dplyr::bind_rows(resources.data, resources.meta)))
}
submissions <-
data %>%
- tidyr::nest(data = -c(ridl_container, ridl_dataset)) %>%
- dplyr::filter(!is.na(ridl_container), !is.na(ridl_dataset)) %>%
+ tidyr::nest(data = -any_of(c("ridl_container", "ridl_dataset"))) %>%
+ # dplyr::filter(!is.na(ridl_container), !is.na(ridl_dataset)) %>%
purrr::pmap_dfr(prep_submission)
submissions %>% purrr::pwalk(kobo_submit_ridl_package)
From e94563b088ae6701e2bd14874e671973b0acb03c Mon Sep 17 00:00:00 2001
From: edouard-legoupil
Date: Mon, 9 Nov 2020 16:54:06 -0500
Subject: [PATCH 08/12] rev
---
DESCRIPTION | 2 +-
NAMESPACE | 1 +
R/kobo_clean.R | 8 +-
R/kobo_crunching_report.R | 221 +++++++++++++-----
R/kobo_edit_ridl_metadata.R | 23 +-
R/kobo_get_dataframes_levels.R | 5 +-
R/kobo_load_data.R | 57 +++--
R/kobo_projectinit.R | 48 ++--
R/zzz.R | 3 +-
README.md | 29 ++-
docs/ISSUE_TEMPLATE.html | 3 +-
docs/articles/Anonymisation.html | 5 +-
.../anchor-sections-1.0/anchor-sections.css | 4 +
.../anchor-sections-1.0/anchor-sections.js | 33 +++
docs/articles/Cleaning.html | 5 +-
.../anchor-sections-1.0/anchor-sections.css | 4 +
.../anchor-sections-1.0/anchor-sections.js | 33 +++
docs/articles/Console.html | 5 +-
.../anchor-sections-1.0/anchor-sections.css | 4 +
.../anchor-sections-1.0/anchor-sections.js | 33 +++
docs/articles/Crunching.html | 5 +-
.../anchor-sections-1.0/anchor-sections.css | 4 +
.../anchor-sections-1.0/anchor-sections.js | 33 +++
docs/articles/Dissiminating.html | 5 +-
.../anchor-sections-1.0/anchor-sections.css | 4 +
.../anchor-sections-1.0/anchor-sections.js | 33 +++
docs/articles/Getting_data.html | 5 +-
.../anchor-sections-1.0/anchor-sections.css | 4 +
.../anchor-sections-1.0/anchor-sections.js | 33 +++
docs/articles/Predicting_Scoring.html | 5 +-
.../anchor-sections-1.0/anchor-sections.css | 4 +
.../anchor-sections-1.0/anchor-sections.js | 33 +++
docs/articles/Sampling.html | 5 +-
.../anchor-sections-1.0/anchor-sections.css | 4 +
.../anchor-sections-1.0/anchor-sections.js | 33 +++
docs/articles/Troubleshooting.html | 5 +-
.../anchor-sections-1.0/anchor-sections.css | 4 +
.../anchor-sections-1.0/anchor-sections.js | 33 +++
docs/articles/xlsform.html | 5 +-
.../anchor-sections-1.0/anchor-sections.css | 4 +
.../anchor-sections-1.0/anchor-sections.js | 33 +++
docs/index.html | 36 ++-
docs/pkgdown.yml | 2 +-
docs/reference/format_si.html | 8 +-
docs/reference/get_me.html | 2 +-
docs/reference/kobo_aggregate.html | 8 +-
docs/reference/kobo_anonymisation_report.html | 8 +-
docs/reference/kobo_anonymise.html | 8 +-
docs/reference/kobo_apps.html | 10 +-
docs/reference/kobo_arrange_variablename.html | 8 +-
docs/reference/kobo_atlas_report.html | 20 +-
docs/reference/kobo_check_analysis_plan.html | 8 +-
.../kobo_check_project_configuration.html | 8 +-
docs/reference/kobo_clean.html | 8 +-
docs/reference/kobo_cluster_report.html | 18 +-
docs/reference/kobo_consolidateone.html | 8 +-
docs/reference/kobo_correlation_analysis.html | 8 +-
docs/reference/kobo_create_indicators.html | 8 +-
docs/reference/kobo_crunching_report.html | 20 +-
docs/reference/kobo_data_downloader.html | 10 +-
docs/reference/kobo_datasets.html | 8 +-
docs/reference/kobo_datasets2.html | 8 +-
docs/reference/kobo_ddi.html | 8 +-
docs/reference/kobo_dico.html | 8 +-
docs/reference/kobo_dummy.html | 8 +-
docs/reference/kobo_edit_form.html | 22 +-
docs/reference/kobo_edit_ridl_metadata.html | 212 +++++++++++++++++
docs/reference/kobo_encode.html | 8 +-
docs/reference/kobo_encode_repeat.html | 8 +-
docs/reference/kobo_form.html | 10 +-
docs/reference/kobo_forminfo.html | 10 +-
docs/reference/kobo_getMainDirectory.html | 8 +-
docs/reference/kobo_get_begin_repeat.html | 8 +-
docs/reference/kobo_get_config.html | 8 +-
.../reference/kobo_get_dataframes_levels.html | 8 +-
docs/reference/kobo_get_theme.html | 8 +-
docs/reference/kobo_host.html | 10 +-
docs/reference/kobo_indicator.html | 8 +-
docs/reference/kobo_label.html | 8 +-
docs/reference/kobo_left_align.html | 8 +-
docs/reference/kobo_load_data.html | 8 +-
docs/reference/kobo_load_packages.html | 8 +-
docs/reference/kobo_map_cat.html | 8 +-
docs/reference/kobo_map_int.html | 8 +-
docs/reference/kobo_prediction_report.html | 8 +-
docs/reference/kobo_prepare_form.html | 8 +-
docs/reference/kobo_projectconfig.html | 8 +-
docs/reference/kobo_projectinit.html | 10 +-
docs/reference/kobo_question.html | 8 +-
docs/reference/kobo_registration.html | 8 +-
.../kobo_rename_xlsform_dataframes.html | 8 +-
docs/reference/kobo_samplingframe.html | 30 +--
docs/reference/kobo_shiny.html | 8 +-
docs/reference/kobo_split_multiple.html | 8 +-
docs/reference/kobo_submission_count.html | 10 +-
docs/reference/kobo_time_parser_UTC.html | 10 +-
docs/reference/kobo_to_xlsform.html | 12 +-
docs/reference/kobo_unhcr_style_bar.html | 8 +-
docs/reference/kobo_unhcr_style_bar_big.html | 8 +-
docs/reference/kobo_unhcr_style_histo.html | 4 +-
.../reference/kobo_unhcr_style_histo_big.html | 4 +-
docs/reference/kobo_unhcr_style_map.html | 8 +-
docs/reference/kobo_unhcr_style_map_big.html | 8 +-
docs/reference/kobo_unhcr_style_scatter.html | 8 +-
.../kobo_unhcr_style_scatter_big.html | 8 +-
docs/reference/kobo_weight.html | 8 +-
docs/reference/koboloadeR-package.html | 214 +++++++++++++++++
docs/reference/ltbl.html | 8 +-
docs/reference/multresponse.html | 8 +-
docs/reference/psum.html | 8 +-
docs/reference/pwd_parse.html | 12 +-
docs/reference/round2.html | 8 +-
docs/reference/round_preserve_sum.html | 8 +-
docs/sitemap.xml | 6 +
man/kobo_edit_ridl_metadata.Rd | 24 ++
man/kobo_projectinit.Rd | 2 +-
116 files changed, 1471 insertions(+), 469 deletions(-)
create mode 100644 docs/articles/Anonymisation_files/anchor-sections-1.0/anchor-sections.css
create mode 100644 docs/articles/Anonymisation_files/anchor-sections-1.0/anchor-sections.js
create mode 100644 docs/articles/Cleaning_files/anchor-sections-1.0/anchor-sections.css
create mode 100644 docs/articles/Cleaning_files/anchor-sections-1.0/anchor-sections.js
create mode 100644 docs/articles/Console_files/anchor-sections-1.0/anchor-sections.css
create mode 100644 docs/articles/Console_files/anchor-sections-1.0/anchor-sections.js
create mode 100644 docs/articles/Crunching_files/anchor-sections-1.0/anchor-sections.css
create mode 100644 docs/articles/Crunching_files/anchor-sections-1.0/anchor-sections.js
create mode 100644 docs/articles/Dissiminating_files/anchor-sections-1.0/anchor-sections.css
create mode 100644 docs/articles/Dissiminating_files/anchor-sections-1.0/anchor-sections.js
create mode 100644 docs/articles/Getting_data_files/anchor-sections-1.0/anchor-sections.css
create mode 100644 docs/articles/Getting_data_files/anchor-sections-1.0/anchor-sections.js
create mode 100644 docs/articles/Predicting_Scoring_files/anchor-sections-1.0/anchor-sections.css
create mode 100644 docs/articles/Predicting_Scoring_files/anchor-sections-1.0/anchor-sections.js
create mode 100644 docs/articles/Sampling_files/anchor-sections-1.0/anchor-sections.css
create mode 100644 docs/articles/Sampling_files/anchor-sections-1.0/anchor-sections.js
create mode 100644 docs/articles/Troubleshooting_files/anchor-sections-1.0/anchor-sections.css
create mode 100644 docs/articles/Troubleshooting_files/anchor-sections-1.0/anchor-sections.js
create mode 100644 docs/articles/xlsform_files/anchor-sections-1.0/anchor-sections.css
create mode 100644 docs/articles/xlsform_files/anchor-sections-1.0/anchor-sections.js
create mode 100644 docs/reference/kobo_edit_ridl_metadata.html
create mode 100644 docs/reference/koboloadeR-package.html
create mode 100644 man/kobo_edit_ridl_metadata.Rd
diff --git a/DESCRIPTION b/DESCRIPTION
index aa9b993..5e8677e 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -58,6 +58,7 @@ Imports:
pander,
pls,
plyr,
+ qpdf,
randomForest,
rattle,
RColorBrewer,
@@ -82,7 +83,6 @@ Imports:
stringi,
stringr,
survey,
- tidyverse,
tools,
truncnorm,
tidyverse,
diff --git a/NAMESPACE b/NAMESPACE
index ce55442..9db5b48 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -22,6 +22,7 @@ export(kobo_ddi)
export(kobo_dico)
export(kobo_dummy)
export(kobo_edit_form)
+export(kobo_edit_ridl_metadata)
export(kobo_encode)
export(kobo_encode_repeat)
export(kobo_form)
diff --git a/R/kobo_clean.R b/R/kobo_clean.R
index 023865e..a4a41ae 100644
--- a/R/kobo_clean.R
+++ b/R/kobo_clean.R
@@ -30,14 +30,14 @@ kobo_clean <- function(frame, form = "form.xls", app = "console") {
mainDir <- kobo_getMainDirectory()
form <- as.character(form)
#cat(paste0(form,"\n"))
- #formpath <- as.character(paste0(mainDir,"/data/dico_",form,".csv"))
+ formpath <- as.character(paste0(mainDir,"/data/dico_",form,".csv"))
#cat(paste0(formpath,"\n"))
- #dico <- utils::read.csv(formpath, encoding = "UTF-8", na.strings = "")
+ dico <- utils::read.csv(formpath, encoding = "UTF-8", na.strings = "")
- formpath <- as.character(paste0(mainDir,"/data/dico_",form,".rda"))
+ #formpath <- as.character(paste0(mainDir,"/data/dico_",form,".rda"))
#cat(paste0(formpath,"\n"))
- load(formpath)
+ #load(formpath)
# frame <- MainDataFrame
# frame <- household
diff --git a/R/kobo_crunching_report.R b/R/kobo_crunching_report.R
index 45406f1..792e112 100644
--- a/R/kobo_crunching_report.R
+++ b/R/kobo_crunching_report.R
@@ -10,8 +10,9 @@
#' It is assumed that the form is stored in the data-raw folder.
#' @param output The output format html or aspx if you need to upload on sharepoint), docx (to quickly cut non interesting vz and take note during data interpretation session), pptx (to quickly cut non interesting vz and persent during data interpretation session), Default is html
#' @param app The place where the function has been executed, the default is the console and the second option is the shiny app
-#' @param render TRUE or FALSE - Tells wheter to only produce Rmd or to also knit it in the required output format. Default is TRUE. Usefull for testing as rending takes time.
-#' @param lang eng, fre or esp - Change the langauge of the intro to the report - default is english
+#' @param render TRUE or FALSE - Tells whether to only produce Rmd or to also knit it in the required output format. Default is TRUE. Useful for testing as rending takes time.
+#' @param lang eng, fre or esp - Change the language of the intro to the report - default is english
+#' @param unhcRstyle TRUE or FALSE tells wether to use UNHCR style fo rendering
#'
#' @return No return, All results will be saved on RMD files and Word files
#'
@@ -30,7 +31,8 @@ kobo_crunching_report <- function(form = "form.xls",
app = "console",
output ="html",
render = "TRUE",
- lang = "eng") {
+ lang = "eng",
+ unhcRstyle = "TRUE") {
tryCatch({
if (app == "shiny") {
progress <- shiny::Progress$new()
@@ -909,10 +911,19 @@ kobo_crunching_report <- function(form = "form.xls",
if (output == "pptx") {
- cat(paste0("kobo_unhcr_style_bar_big()"),file = report.name ,sep = "\n", append = TRUE)
-
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_bar_big()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
+
+
} else {
- cat(paste0("kobo_unhcr_style_bar()"),file = report.name ,sep = "\n", append = TRUE)
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_bar()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
}
@@ -1014,10 +1025,22 @@ kobo_crunching_report <- function(form = "form.xls",
configInfo[configInfo$name == "Country", c("value")]," \")) +"), file = report.name ,sep = "\n", append = TRUE)
if (output == "pptx") {
- cat(paste0("kobo_unhcr_style_histo_big()"),file = report.name ,sep = "\n", append = TRUE)
+
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_histo_big()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
+
} else {
- cat(paste0("kobo_unhcr_histo_bar()"),file = report.name ,sep = "\n", append = TRUE)
+
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_histo()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
+
}
cat(paste0("ggpubr::ggarrange(kobo_left_align(plot1, c(\"caption\", \"subtitle\", \"title\")), ncol = 1, nrow = 1)"),file = report.name ,sep = "\n", append = TRUE)
@@ -1058,10 +1081,22 @@ kobo_crunching_report <- function(form = "form.xls",
configInfo[configInfo$name == "Country", c("value")]," \")) +"), file = report.name ,sep = "\n", append = TRUE)
if (output == "pptx") {
- cat(paste0("kobo_unhcr_style_histo_big()"),file = report.name ,sep = "\n", append = TRUE)
-
+
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_histo_big()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
+
+
} else {
- cat(paste0("kobo_unhcr_style_histo()"),file = report.name ,sep = "\n", append = TRUE)
+
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_histo()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
+
}
cat(paste0("ggpubr::ggarrange(kobo_left_align(plot1, c(\"caption\", \"subtitle\", \"title\")), ncol = 1, nrow = 1)"),file = report.name ,sep = "\n", append = TRUE)
@@ -1147,16 +1182,28 @@ kobo_crunching_report <- function(form = "form.xls",
max(as.Date(MainDataFrame$today, format = \"%Y-%m-%d\")), \" in \", \" ",
configInfo[configInfo$name == "Country", c("value")]," \")) +"), file = report.name ,sep = "\n", append = TRUE)
+ ## setting up the legend
+ #cat(paste0("guides(fill = FALSE) +"),file = report.name ,sep = "\n", append = TRUE)
+ cat(paste0("theme(legend.direction = \"horizontal\", legend.position = \"bottom\", legend.box = \"horizontal\",legend.title = element_blank() ) +"),file = report.name ,sep = "\n", append = TRUE)
+
if (output == "pptx") {
- cat(paste0("kobo_unhcr_style_bar_big() +"),file = report.name ,sep = "\n", append = TRUE)
-
+
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_bar_big()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
+
+
} else {
- cat(paste0("kobo_unhcr_style_bar() +"),file = report.name ,sep = "\n", append = TRUE)
+
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_bar()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
+
}
-
- ## setting up the legend
- #cat(paste0("guides(fill = FALSE) +"),file = report.name ,sep = "\n", append = TRUE)
- cat(paste0("theme(legend.direction = \"horizontal\", legend.position = \"bottom\", legend.box = \"horizontal\",legend.title = element_blank() )"),file = report.name ,sep = "\n", append = TRUE)
cat(paste0("ggpubr::ggarrange(kobo_left_align(plot1, c(\"caption\", \"subtitle\", \"title\")), ncol = 1, nrow = 1)"),file = report.name ,sep = "\n", append = TRUE)
## Close chunk
@@ -1393,12 +1440,23 @@ kobo_crunching_report <- function(form = "form.xls",
if (output == "pptx") {
- cat(paste0("kobo_unhcr_style_histo_big()"),file = report.name ,sep = "\n", append = TRUE)
-
+
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_histo_big()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
+
+
} else {
- cat(paste0("kobo_unhcr_style_histo()"),file = report.name ,sep = "\n", append = TRUE)
+
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_histo()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
+
}
-
cat(paste0("ggpubr::ggarrange(kobo_left_align(plot1, c(\"caption\", \"subtitle\", \"title\")), ncol = 1, nrow = 1)"),file = report.name ,sep = "\n", append = TRUE)
cat(paste0("\n\n"),file = report.name ,sep = "\n", append = TRUE)
cat("\n")
@@ -1434,12 +1492,18 @@ kobo_crunching_report <- function(form = "form.xls",
configInfo[configInfo$name == "Country", c("value")]," \")) +"), file = report.name ,sep = "\n", append = TRUE)
if (output == "pptx") {
- cat(paste0("kobo_unhcr_style_histo_big()"),file = report.name ,sep = "\n", append = TRUE)
-
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_histo_big()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
} else {
- cat(paste0("kobo_unhcr_style_histo()"),file = report.name ,sep = "\n", append = TRUE)
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_histo()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
}
-
cat(paste0("ggpubr::ggarrange(kobo_left_align(plot1, c(\"caption\", \"subtitle\", \"title\")), ncol = 1, nrow = 1)"),file = report.name ,sep = "\n", append = TRUE)
}
}
@@ -1536,12 +1600,18 @@ kobo_crunching_report <- function(form = "form.xls",
configInfo[configInfo$name == "Country", c("value")]," \")) +"), file = report.name ,sep = "\n", append = TRUE)
if (output == "pptx") {
- cat(paste0("kobo_unhcr_style_bar_big()"),file = report.name ,sep = "\n", append = TRUE)
-
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_bar_big()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
} else {
- cat(paste0("kobo_unhcr_style_bar()"),file = report.name ,sep = "\n", append = TRUE)
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_bar()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
}
-
cat(paste0("ggpubr::ggarrange(kobo_left_align(plot1, c(\"caption\", \"subtitle\", \"title\")), ncol = 1, nrow = 1)"),file = report.name ,sep = "\n", append = TRUE)
if (H >= 1.349) {
@@ -1567,12 +1637,18 @@ kobo_crunching_report <- function(form = "form.xls",
configInfo[configInfo$name == "Country", c("value")]," \")) +"), file = report.name ,sep = "\n", append = TRUE)
if (output == "pptx") {
- cat(paste0("kobo_unhcr_style_bar_big()"),file = report.name ,sep = "\n", append = TRUE)
-
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_bar_big()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
} else {
- cat(paste0("kobo_unhcr_style_bar()"),file = report.name ,sep = "\n", append = TRUE)
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_bar()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
}
-
cat(paste0("ggpubr::ggarrange(kobo_left_align(plot1, c(\"caption\", \"subtitle\", \"title\")), ncol = 1, nrow = 1)"),file = report.name ,sep = "\n", append = TRUE)
}
## Close chunk
@@ -1618,12 +1694,18 @@ kobo_crunching_report <- function(form = "form.xls",
configInfo[configInfo$name == "Country", c("value")]," \")) +"), file = report.name ,sep = "\n", append = TRUE)
if (output == "pptx") {
- cat(paste0("kobo_unhcr_style_scatter_big()"),file = report.name ,sep = "\n", append = TRUE)
-
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_scatter_big()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
} else {
- cat(paste0("kobo_unhcr_style_scatter()"),file = report.name ,sep = "\n", append = TRUE)
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_scatter()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
}
-
cat(paste0("ggpubr::ggarrange(kobo_left_align(plot1, c(\"caption\", \"subtitle\", \"title\")), ncol = 1, nrow = 1)"),file = report.name ,sep = "\n", append = TRUE)
@@ -1644,13 +1726,20 @@ kobo_crunching_report <- function(form = "form.xls",
min(as.Date(MainDataFrame$today, format = \"%Y-%m-%d\")), \" and \",
max(as.Date(MainDataFrame$today, format = \"%Y-%m-%d\")), \" in \", \" ",
configInfo[configInfo$name == "Country", c("value")]," \")) +"), file = report.name ,sep = "\n", append = TRUE)
+
if (output == "pptx") {
- cat(paste0("kobo_unhcr_style_scatter_big() +"),file = report.name ,sep = "\n", append = TRUE)
-
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_scatter_big()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
} else {
- cat(paste0("kobo_unhcr_style_scatter() +"),file = report.name ,sep = "\n", append = TRUE)
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_scatter_histo()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
}
-
cat(paste0("ggpubr::ggarrange(kobo_left_align(plot1, c(\"caption\", \"subtitle\", \"title\")), ncol = 1, nrow = 1)"),file = report.name ,sep = "\n", append = TRUE)
## Close chunk
@@ -1800,13 +1889,20 @@ kobo_crunching_report <- function(form = "form.xls",
min(as.Date(MainDataFrame$today, format = \"%Y-%m-%d\")), \" and \",
max(as.Date(MainDataFrame$today, format = \"%Y-%m-%d\")), \" in \", \" ",
configInfo[configInfo$name == "Country", c("value")]," \")) +"), file = report.name ,sep = "\n", append = TRUE)
+
if (output == "pptx") {
- cat(paste0("kobo_unhcr_style_bar_big()"),file = report.name ,sep = "\n", append = TRUE)
-
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_bar_big()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
} else {
- cat(paste0("kobo_unhcr_style_bar()"),file = report.name ,sep = "\n", append = TRUE)
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_bar()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
}
-
cat(paste0("ggpubr::ggarrange(kobo_left_align(plot1, c(\"caption\", \"subtitle\", \"title\")), ncol = 1, nrow = 1)"),file = report.name ,sep = "\n", append = TRUE)
cat(paste0("\n```\n", sep = '\n'), file = report.name, append = TRUE)
@@ -1917,15 +2013,19 @@ kobo_crunching_report <- function(form = "form.xls",
max(as.Date(MainDataFrame$today, format = \"%Y-%m-%d\")), \" in \", \" ",
configInfo[configInfo$name == "Country", c("value")]," \")) +"), file = report.name ,sep = "\n", append = TRUE)
-
if (output == "pptx") {
- cat(paste0("kobo_unhcr_style_bar_big()"),file = report.name ,sep = "\n", append = TRUE)
-
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_bar_big()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
} else {
- cat(paste0("kobo_unhcr_style_bar()"),file = report.name ,sep = "\n", append = TRUE)
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_bar_histo()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
}
-
-
cat(paste0("ggpubr::ggarrange(kobo_left_align(plot1, c(\"caption\", \"subtitle\", \"title\")), ncol = 1, nrow = 1)"),file = report.name ,sep = "\n", append = TRUE)
## Close chunk
cat(paste0("\n```\n", sep = '\n'), file = report.name, append = TRUE)
@@ -1979,19 +2079,24 @@ kobo_crunching_report <- function(form = "form.xls",
min(as.Date(MainDataFrame$today, format = \"%Y-%m-%d\")), \" and \",
max(as.Date(MainDataFrame$today, format = \"%Y-%m-%d\")), \" in \", \" ",
configInfo[configInfo$name == "Country", c("value")]," \")) +"), file = report.name ,sep = "\n", append = TRUE)
+ cat(paste0("theme(axis.text.x = element_text(angle = 60, hjust = 1, vjust = 1 )) + "),file = report.name ,sep = "\n", append = TRUE)
if (output == "pptx") {
- cat(paste0("kobo_unhcr_style_histo_big() +"),file = report.name ,sep = "\n", append = TRUE)
-
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_histo_big()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
} else {
- cat(paste0("kobo_unhcr_style_histo() +"),file = report.name ,sep = "\n", append = TRUE)
+ if(unhcRstyle == "TRUE") {
+ cat(paste0("unhcRstyle::unhcr_style_histo()"),file = report.name ,sep = "\n", append = TRUE)
+ } else {
+ cat(paste0("theme_minimal()"),file = report.name ,sep = "\n", append = TRUE)
+ }
}
-
- cat(paste0("theme(axis.text.x = element_text(angle = 60, hjust = 1, vjust = 1 ))"),file = report.name ,sep = "\n", append = TRUE)
cat(paste0("ggpubr::ggarrange(kobo_left_align(plot1, c(\"caption\", \"subtitle\", \"title\")), ncol = 1, nrow = 1)"),file = report.name ,sep = "\n", append = TRUE)
cat(paste0("\n\n"),file = report.name ,sep = "\n", append = TRUE)
-
## Close chunk
cat(paste0("\n```\n", sep = '\n'), file = report.name, append = TRUE)
diff --git a/R/kobo_edit_ridl_metadata.R b/R/kobo_edit_ridl_metadata.R
index 121055c..3e20cb8 100644
--- a/R/kobo_edit_ridl_metadata.R
+++ b/R/kobo_edit_ridl_metadata.R
@@ -1,4 +1,25 @@
-#' @export
+#' @name kobo_edit_ridl_metadata
+#' @rdname kobo_edit_ridl_metadata
+#' @title Edit RIDL / CKAN metadata
+#'
+#' @description Edit RIDL / CKAN metadata
+#'
+#' @param form The full filename of the form to be accessed (xls file).
+#' It is assumed that the form is stored in the data folder.
+#'
+#'
+#' @author Hisham Galal
+#'
+#'
+#' @examples
+#' \dontrun{
+#' kobo_edit_ridl_metadata(form = "form.xls")
+#' }
+#'
+#' @export kobo_edit_ridl_metadata
+#'
+
+
kobo_edit_ridl_metadata <- function(form = "data/form.xls") {
ui <- miniUI::miniPage(
miniUI::gadgetTitleBar(
diff --git a/R/kobo_get_dataframes_levels.R b/R/kobo_get_dataframes_levels.R
index d1dc8d1..b4d85a7 100644
--- a/R/kobo_get_dataframes_levels.R
+++ b/R/kobo_get_dataframes_levels.R
@@ -24,7 +24,8 @@
kobo_get_dataframes_levels <- function(form="form.xls") {
tryCatch({
mainDir <- kobo_getMainDirectory()
- form_tmp <- paste(mainDir, "data", form, sep = "/", collapse = "/")
+ #form_tmp <- paste(mainDir, "data", form, sep = "/", collapse = "/")
+ form_tmp <- paste(mainDir, "data-raw", form, sep = "/", collapse = "/")
survey <- tryCatch({
as.data.frame(readxl::read_excel(form_tmp, sheet = "survey"),
stringsAsFactors = FALSE) #read survey sheet from the form
@@ -109,7 +110,7 @@ kobo_get_dataframes_levels <- function(form="form.xls") {
result <- result[order(result$level, result$parent),]
return(result)
}, error = function(err) {
- print("kkobo_get_dataframes_levels_ERROR")
+ print("kobo_get_dataframes_levels_ERROR")
return(structure(err, class = "try-error"))
})
}
diff --git a/R/kobo_load_data.R b/R/kobo_load_data.R
index 2a494f9..4a217de 100644
--- a/R/kobo_load_data.R
+++ b/R/kobo_load_data.R
@@ -53,19 +53,19 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
cat("\n\n\n Generate dictionnary from the xlsform \n\n\n\n")
mainDir <- kobo_getMainDirectory()
kobo_dico(form)
- #dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
- load(paste0(mainDir,"/data/dico_",form,".rda"))
+ dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
+ #load(paste0(mainDir,"/data/dico_",form,".rda"))
## Load data #######################################################################
cat("\n\n\n Load original dataset \n\n\n\n")
- originalData <- readr::read_csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == "MainDataFrame", "path"]))
- # originalData <- utils::read.csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == "MainDataFrame", "path"]), sep = ",", encoding = "UTF-8", na.strings = "")
+ # originalData <- readr::read_csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == "MainDataFrame", "path"]))
+ originalData <- utils::read.csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == "MainDataFrame", "path"]), sep = ",", encoding = "UTF-8", na.strings = "")
if (ncol(originalData) == 1) {
cat("seems like you file use ; rather , variable separator.... \n")
- originalData <- readr::read_csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == "MainDataFrame", "path"]))
- # originalData <- utils::read.csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == "MainDataFrame", "path"]), sep = ";", encoding = "UTF-8", na.strings = "")
+ # originalData <- readr::read_csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == "MainDataFrame", "path"]))
+ originalData <- utils::read.csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == "MainDataFrame", "path"]), sep = ";", encoding = "UTF-8", na.strings = "")
}
## Check to split select_multiple if data is extracted from ODK ###################
@@ -136,8 +136,8 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
cat("\n\n Write backup before encoding or indicators calculation..\n")
- #utils::write.csv(MainDataFrame,paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), row.names = FALSE, na = "")
- save(MainDataFrame, file = paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))
+ utils::write.csv(MainDataFrame,paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), row.names = FALSE, na = "")
+ #save(MainDataFrame, file = paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))
@@ -172,8 +172,8 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
}
# dbr <- levelsOfDF$name[1]
cat("\n\nloading",dbr,"file ..\n")
- dataFrame <- readr::read_csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == dbr,"path"]))
- # dataFrame <- utils::read.csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == dbr,"path"]), stringsAsFactors = F)
+ # dataFrame <- readr::read_csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == dbr,"path"]))
+ dataFrame <- utils::read.csv(paste0(mainDir, "/data-raw/",configInfoOrigin[configInfoOrigin$name == dbr,"path"]), stringsAsFactors = F)
if (app == "shiny") {
progress$set(message = paste("Splitting",dbr,"file in progress..."))
@@ -210,8 +210,8 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
cat("\n\n Saving ",dbr,"file as _edited..\n")
- # utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""), row.names = FALSE, na = "")
- save(dataFrame, file = paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
+ utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""), row.names = FALSE, na = "")
+ #save(dataFrame, file = paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
# }
#
@@ -236,12 +236,12 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
## Case MainDataFrame called household
if (parent %in% c("household", "MainDataFrame")) {
- # parentDf <- utils::read.csv(paste(mainDir,"/data/",parent,"_edited.csv",sep = ""),stringsAsFactors = F)
- load(paste(mainDir,"/data/",parent,"_edited.rda",sep = ""))
+ parentDf <- utils::read.csv(paste(mainDir,"/data/",parent,"_edited.csv",sep = ""),stringsAsFactors = F)
+ # load(paste(mainDir,"/data/",parent,"_edited.rda",sep = ""))
}else{
- #parentDf <- utils::read.csv(paste(mainDir,"/data/",parent,"_edited.csv",sep = ""),stringsAsFactors = F)
- load(paste(mainDir,"/data/",parent,"_edited.rda",sep = ""))
+ parentDf <- utils::read.csv(paste(mainDir,"/data/",parent,"_edited.csv",sep = ""),stringsAsFactors = F)
+ #load(paste(mainDir,"/data/",parent,"_edited.rda",sep = ""))
}
@@ -283,8 +283,8 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
}
cat("\n\n Saving edited version of ", dbr, " ...\n")
- #utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""), row.names = FALSE, na = "")
- save(dataFrame, file = paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
+ utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""), row.names = FALSE, na = "")
+ #save(dataFrame, file = paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
}
@@ -306,13 +306,12 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
}
+ dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
+ #load(paste(mainDir,"/data/dico_",form,".rda",sep = ""))
- load(paste(mainDir,"/data/dico_",form,".rda",sep = ""))
- load(paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))
-
- #dico <- utils::read.csv(paste0(mainDir,"/data/dico_",form,".csv"), encoding = "UTF-8", na.strings = "")
- #MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), encoding = "UTF-8", na.strings = "NA")
+ MainDataFrame <- utils::read.csv(paste(mainDir,"/data/MainDataFrame_edited.csv",sep = ""), encoding = "UTF-8", na.strings = "NA")
+ #load(paste(mainDir,"/data/MainDataFrame_edited.rda",sep = ""))
## Re-encoding data now based on the dictionnary -- ##############################
@@ -329,13 +328,13 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
## loading nested frame
for (dbr in levelsOfDF$name) {
- #dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
- load(paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
+ dataFrame <- utils::read.csv(paste(mainDir,"/data/",dbr,"_edited.csv",sep = ""),stringsAsFactors = F)
+ #load(paste(mainDir,"/data/",dbr,"_edited.rda",sep = ""))
dataFrame <- kobo_encode(dataFrame, dico)
- #utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_encoded.csv",sep = ""), row.names = FALSE, na = "")
- save(dataFrame, file = paste(mainDir,"/data/",dbr,"_encoded.rda",sep = ""))
+ utils::write.csv(dataFrame,paste(mainDir,"/data/",dbr,"_encoded.csv",sep = ""), row.names = FALSE, na = "")
+ #save(dataFrame, file = paste(mainDir,"/data/",dbr,"_encoded.rda",sep = ""))
cat("\n\nRe-encode",dbr,"..\n")
}
@@ -343,8 +342,8 @@ kobo_load_data <- function(form = "form.xls", app = "console") {
updateProgress()
}
- #utils::write.csv(MainDataFrame,paste(mainDir,"/data/MainDataFrame_encoded.csv",sep = ""), row.names = FALSE, na = "")
- save(MainDataFrame, file = paste(mainDir,"/data/MainDataFrame_encoded.rda",sep = ""))
+ utils::write.csv(MainDataFrame,paste(mainDir,"/data/MainDataFrame_encoded.csv",sep = ""), row.names = FALSE, na = "")
+ #save(MainDataFrame, file = paste(mainDir,"/data/MainDataFrame_encoded.rda",sep = ""))
return(TRUE)
}, error = function(err) {
diff --git a/R/kobo_projectinit.R b/R/kobo_projectinit.R
index 7f852d7..f98d9bb 100644
--- a/R/kobo_projectinit.R
+++ b/R/kobo_projectinit.R
@@ -71,30 +71,30 @@ kobo_projectinit <- function() {
}
## man folder creation ####
- subDir <- "man"
- if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
- cat("man exists in mainDir and is a directory.\n")
- } else if (file.exists(paste(mainDir, subDir, sep = "/", collapse = "/"))) {
- cat("man directory exists in your project directory but is a file.\n")
- # you will probably want to handle this separately
- } else {
- cat("man directory does not exist in your project directory - creating now!\n ")
- dir.create(file.path(mainDir, subDir))
- }
-
- if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
- # By this point, the directory either existed or has been successfully created
- setwd(file.path(mainDir, subDir))
- } else {
- cat("")
- # Handle this error as appropriate
- }
- destfile = paste0(mainDir,"/man/README.md")
- if (!file.exists(destfile)) {
- fileConn <- file(destfile)
- writeLines(c("### This folder is where the project documentation will be build"), fileConn)
- close(fileConn)
- }
+ # subDir <- "man"
+ # if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
+ # cat("man exists in mainDir and is a directory.\n")
+ # } else if (file.exists(paste(mainDir, subDir, sep = "/", collapse = "/"))) {
+ # cat("man directory exists in your project directory but is a file.\n")
+ # # you will probably want to handle this separately
+ # } else {
+ # cat("man directory does not exist in your project directory - creating now!\n ")
+ # dir.create(file.path(mainDir, subDir))
+ # }
+ #
+ # if (file.exists(paste(mainDir, subDir, "/", sep = "/", collapse = "/"))) {
+ # # By this point, the directory either existed or has been successfully created
+ # setwd(file.path(mainDir, subDir))
+ # } else {
+ # cat("")
+ # # Handle this error as appropriate
+ # }
+ # destfile = paste0(mainDir,"/man/README.md")
+ # if (!file.exists(destfile)) {
+ # fileConn <- file(destfile)
+ # writeLines(c("### This folder is where the project documentation will be build"), fileConn)
+ # close(fileConn)
+ # }
## R folder creation ####
diff --git a/R/zzz.R b/R/zzz.R
index fb06cb3..dd4410e 100644
--- a/R/zzz.R
+++ b/R/zzz.R
@@ -22,7 +22,8 @@
"str_replace", "str_replace_all", "str_wrap", "stri_rand_strings", "svydesign",
"svytable", "tail", "theme", "theme.porttheme", "theme_gray", "theme_map",
"theme_minimal", "theme_set", "trim", "type", "unit", "usedsampling", "usedweight",
- "variable", "write.csv", "xlab", "ylab", "content", "progress", "setDT", "%>%"
+ "variable", "write.csv", "xlab", "ylab", "content", "progress", "setDT", "%>%",
+ "field_name", "form_placeholder", "help_text", "label", "list_name", "name required", "value"
)
)
diff --git a/README.md b/README.md
index 31449ea..e6c719a 100644
--- a/README.md
+++ b/README.md
@@ -195,8 +195,31 @@ To go in more details, the suggested workflow is presented below (note that all
![alt text](https://raw.githubusercontent.com/unhcr/koboloadeR/gh-pages/inst/script/workflow2.png)
-CRAN Notes
-==========
+> This package is part of `unhcrverse`, a set of packages to ease the production of statistical evidence and data stories. You can install them all with the following:
+
+```r
+## Use UNHCR Open data
+remotes::install_github('unhcr/unhcrdatapackage')
+
+## Use API to connect to licensed / internal data source
+remotes::install_github('unhcr-web/hcrdata')
+
+## Perform High Frequency Check during data collection
+remotes::install_github('unhcr-web/HighFrequencyChecks')
+
+## Process data crunching for survey dataset
+remotes::install_github('unhcr/koboloadeR')
+
+## Use UNHCR template for reporting and writing stories
+remotes::install_github('unhcr-web/unhcRstyle')
+```
+
+#### Building package documentation
+
+`devtools::document()`
+
+`devtools::check(document = FALSE)`
+
+`pkgdown::build_site()`
-Test results
------------
diff --git a/docs/ISSUE_TEMPLATE.html b/docs/ISSUE_TEMPLATE.html
index 17896eb..34690bc 100644
--- a/docs/ISSUE_TEMPLATE.html
+++ b/docs/ISSUE_TEMPLATE.html
@@ -177,8 +177,7 @@
Current result
describe what you you currently experience from this process, and thereby explain the bug
+# insert reprex here
diff --git a/docs/articles/Anonymisation.html b/docs/articles/Anonymisation.html
index 940e756..12dc564 100644
--- a/docs/articles/Anonymisation.html
+++ b/docs/articles/Anonymisation.html
@@ -103,13 +103,14 @@
-