Attaches a dataset to the UD state supplied.
Usage
UD_attach_ds(
state,
clean = NULL,
isgood = TRUE,
load_msg = NULL,
data_file_local = NULL,
data_file_ext = NULL,
data_file = NULL,
sheet = NULL,
sheets = NULL,
code = "",
object_name = NULL,
contents = NULL
)
Arguments
- state
UD state module.
- clean
Boolean switch to determine if the headers in the loaded dataset was cleaned.
- isgood
Boolean object indicating if the file was successfully loaded.
- load_msg
Text message indicated the success or any problems encountered when uploading the file.
- data_file_local
Full path to the data file on the server.
- data_file_ext
File extension of the uploaded file.
- data_file
Dataset file name without the path.
- sheet
If the uploaded file is an excel file, this is the currently selected sheet.
- sheets
If the uploaded file is an excel file, this is a character vector of the sheets present in that file.
- code
Code to load dataset.
- object_name
Name of the dataset object created when code is evaluated.
- contents
Data frame containting the contents of the data file.
Examples
# We need a module state object to use this function:
id="UD"
sess_res = UD_test_mksession(session=list())
#> → ASM: including file
#> → ASM: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → ASM: dest: file.path("config","report.docx")
#> → ASM: including file
#> → ASM: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → ASM: dest: file.path("config","report.pptx")
#> → ASM: including file
#> → ASM: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → ASM: dest: file.path("config","report.yaml")
#> → ASM: State initialized
#> → ASM: setting word placeholders:
#> → ASM: -> setting docx ph: HEADERLEFT = left header
#> → ASM: -> setting docx ph: HEADERRIGHT = right header
#> → ASM: -> setting docx ph: FOOTERLEFT = left footer
#> → ASM: module isgood: TRUE
#> → UD: including file
#> → UD: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → UD: dest: file.path("config","report.docx")
#> → UD: including file
#> → UD: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → UD: dest: file.path("config","report.pptx")
#> → UD: including file
#> → UD: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → UD: dest: file.path("config","report.yaml")
#> → UD: State initialized
#> → UD: module checksum updated:897d952fecbc804999396a96f9df4b20
#> → UD: module isgood: TRUE
state = sess_res$state
# This is the full path to a test data file:
data_file_local = system.file(package="formods", "test_data", "TEST_DATA.xlsx")
# Excel file extension
data_file_ext = "xlsx"
# Base file name
data_file = "TEST_DATA.xlsx"
# Excel files need a sheet specification:
sheet = "DATA"
# We will also attach the sheets along with it
sheets = readxl::excel_sheets(data_file_local)
ds_read_res = UD_ds_read(state,
data_file_ext = data_file_ext,
data_file_local = data_file_local,
data_file = data_file,
sheets = sheets,
sheet = sheet)
# This would contain the loading code that will cascade down
# to the other modules when generating snippets and
# reproducible scripts
code = ds_read_res$code
# This is the R Object name that is used internally
# and in generated scripts. Should be the same as in
# the code above
object_name = ds_read_res$object_name
# This is the actual dataset:
contents = ds_read_res$contents
state = UD_attach_ds(
state,
data_file_local = data_file_local,
data_file_ext = ".xlsx",
data_file = data_file,
sheet = sheet,
sheets = sheets,
code = code,
object_name = object_name,
contents = contents)
state
#> $yaml
#> $yaml$FM
#> $yaml$FM$include
#> $yaml$FM$include$files
#> $yaml$FM$include$files[[1]]
#> $yaml$FM$include$files[[1]]$file
#> $yaml$FM$include$files[[1]]$file$source
#> [1] "file.path(system.file(package=\"onbrand\"), \"templates\", \"report.docx\")"
#>
#> $yaml$FM$include$files[[1]]$file$dest
#> [1] "file.path(\"config\",\"report.docx\")"
#>
#>
#>
#> $yaml$FM$include$files[[2]]
#> $yaml$FM$include$files[[2]]$file
#> $yaml$FM$include$files[[2]]$file$source
#> [1] "file.path(system.file(package=\"onbrand\"), \"templates\", \"report.pptx\")"
#>
#> $yaml$FM$include$files[[2]]$file$dest
#> [1] "file.path(\"config\",\"report.pptx\")"
#>
#>
#>
#> $yaml$FM$include$files[[3]]
#> $yaml$FM$include$files[[3]]$file
#> $yaml$FM$include$files[[3]]$file$source
#> [1] "file.path(system.file(package=\"onbrand\"), \"templates\", \"report.yaml\")"
#>
#> $yaml$FM$include$files[[3]]$file$dest
#> [1] "file.path(\"config\",\"report.yaml\")"
#>
#>
#>
#>
#>
#> $yaml$FM$deployed
#> [1] FALSE
#>
#> $yaml$FM$code
#> $yaml$FM$code$theme
#> [1] "vibrant_ink"
#>
#> $yaml$FM$code$showLineNumbers
#> [1] TRUE
#>
#> $yaml$FM$code$gen_file
#> [1] "run_analysis.R"
#>
#> $yaml$FM$code$gen_preamble
#> [1] "# formods automated output ------------------------------------------------\n# https://formods.ubiquity.tools/\nrm(list=ls())"
#>
#> $yaml$FM$code$packages
#> [1] "onbrand" "writexl"
#>
#>
#> $yaml$FM$notifications
#> $yaml$FM$notifications$config
#> $yaml$FM$notifications$config$success
#> $yaml$FM$notifications$config$success$useFontAwesome
#> [1] FALSE
#>
#> $yaml$FM$notifications$config$success$useIcon
#> [1] FALSE
#>
#> $yaml$FM$notifications$config$success$background
#> [1] "#5bb85b"
#>
#>
#> $yaml$FM$notifications$config$failure
#> $yaml$FM$notifications$config$failure$useFontAwesome
#> [1] FALSE
#>
#> $yaml$FM$notifications$config$failure$useIcon
#> [1] FALSE
#>
#> $yaml$FM$notifications$config$failure$background
#> [1] "#d9534f"
#>
#>
#> $yaml$FM$notifications$config$info
#> $yaml$FM$notifications$config$info$useFontAwesome
#> [1] FALSE
#>
#> $yaml$FM$notifications$config$info$useIcon
#> [1] FALSE
#>
#> $yaml$FM$notifications$config$info$background
#> [1] "#5bc0de"
#>
#>
#> $yaml$FM$notifications$config$warning
#> $yaml$FM$notifications$config$warning$useFontAwesome
#> [1] FALSE
#>
#> $yaml$FM$notifications$config$warning$useIcon
#> [1] FALSE
#>
#> $yaml$FM$notifications$config$warning$background
#> [1] "#f0ac4d"
#>
#>
#>
#>
#> $yaml$FM$reporting
#> $yaml$FM$reporting$enabled
#> [1] TRUE
#>
#> $yaml$FM$reporting$content_init
#> $yaml$FM$reporting$content_init$xlsx
#> [1] "rpt = list(summary = NULL,\n sheets = list())"
#>
#> $yaml$FM$reporting$content_init$docx
#> [1] "rpt = onbrand::read_template(\n template = file.path(\"config\", \"report.docx\"),\n mapping = file.path(\"config\", \"report.yaml\"))"
#>
#> $yaml$FM$reporting$content_init$pptx
#> [1] "rpt = onbrand::read_template(\n template = file.path(\"config\", \"report.pptx\"),\n mapping = file.path(\"config\", \"report.yaml\"))"
#>
#>
#> $yaml$FM$reporting$phs
#> $yaml$FM$reporting$phs[[1]]
#> $yaml$FM$reporting$phs[[1]]$name
#> [1] "HEADERLEFT"
#>
#> $yaml$FM$reporting$phs[[1]]$location
#> [1] "header"
#>
#> $yaml$FM$reporting$phs[[1]]$value
#> [1] ""
#>
#> $yaml$FM$reporting$phs[[1]]$tooltip
#> [1] "left header text"
#>
#>
#> $yaml$FM$reporting$phs[[2]]
#> $yaml$FM$reporting$phs[[2]]$name
#> [1] "HEADERRIGHT"
#>
#> $yaml$FM$reporting$phs[[2]]$location
#> [1] "header"
#>
#> $yaml$FM$reporting$phs[[2]]$value
#> [1] ""
#>
#> $yaml$FM$reporting$phs[[2]]$tooltip
#> [1] "right header text"
#>
#>
#> $yaml$FM$reporting$phs[[3]]
#> $yaml$FM$reporting$phs[[3]]$name
#> [1] "FOOTERLEFT"
#>
#> $yaml$FM$reporting$phs[[3]]$location
#> [1] "footer"
#>
#> $yaml$FM$reporting$phs[[3]]$value
#> [1] ""
#>
#> $yaml$FM$reporting$phs[[3]]$tooltip
#> [1] "left footer text"
#>
#>
#>
#> $yaml$FM$reporting$phs_formatting
#> $yaml$FM$reporting$phs_formatting$width
#> [1] "100%"
#>
#> $yaml$FM$reporting$phs_formatting$tt_position
#> [1] "left"
#>
#> $yaml$FM$reporting$phs_formatting$tt_size
#> [1] "medium"
#>
#>
#>
#> $yaml$FM$ui
#> $yaml$FM$ui$button_style
#> [1] "fill"
#>
#> $yaml$FM$ui$select_size
#> [1] 10
#>
#> $yaml$FM$ui$color_green
#> [1] "#00BB8A"
#>
#> $yaml$FM$ui$color_red
#> [1] "#FF475E"
#>
#> $yaml$FM$ui$color_blue
#> [1] "#0088FF"
#>
#> $yaml$FM$ui$color_purple
#> [1] "#bd2cf4"
#>
#>
#> $yaml$FM$data_meta
#> $yaml$FM$data_meta$data_header
#> [1] "<span style='color:===COLOR==='><b>===NAME===</b><br/><font size='-3'>===LABEL===</font></span>"
#>
#> $yaml$FM$data_meta$subtext
#> [1] "===LABEL===: ===RANGE==="
#>
#> $yaml$FM$data_meta$many_sep
#> [1] ",...,"
#>
#> $yaml$FM$data_meta$data_types
#> $yaml$FM$data_meta$data_types$character
#> $yaml$FM$data_meta$data_types$character$color
#> [1] "#DD4B39"
#>
#> $yaml$FM$data_meta$data_types$character$label
#> [1] "text"
#>
#>
#> $yaml$FM$data_meta$data_types$double
#> $yaml$FM$data_meta$data_types$double$color
#> [1] "#3C8DBC"
#>
#> $yaml$FM$data_meta$data_types$double$label
#> [1] "num"
#>
#>
#> $yaml$FM$data_meta$data_types$integer
#> $yaml$FM$data_meta$data_types$integer$color
#> [1] "#3C8DBC"
#>
#> $yaml$FM$data_meta$data_types$integer$label
#> [1] "num"
#>
#>
#> $yaml$FM$data_meta$data_types$other
#> $yaml$FM$data_meta$data_types$other$color
#> [1] "black"
#>
#> $yaml$FM$data_meta$data_types$other$label
#> [1] "other"
#>
#>
#>
#>
#> $yaml$FM$workflows
#> $yaml$FM$workflows$example
#> $yaml$FM$workflows$example$group
#> [1] "Examples"
#>
#> $yaml$FM$workflows$example$desc
#> [1] "Example Workflow"
#>
#> $yaml$FM$workflows$example$require_ds
#> [1] TRUE
#>
#> $yaml$FM$workflows$example$preload
#> [1] "file.path('.', 'example.yaml')"
#>
#>
#>
#> $yaml$FM$labels
#> $yaml$FM$labels$ui_label
#> [1] "put labels here"
#>
#>
#> $yaml$FM$user_files
#> $yaml$FM$user_files$use_tmpdir
#> [1] TRUE
#>
#>
#> $yaml$FM$logging
#> $yaml$FM$logging$enabled
#> [1] TRUE
#>
#> $yaml$FM$logging$timestamp
#> [1] TRUE
#>
#> $yaml$FM$logging$timestamp_fmt
#> [1] "%Y-%m-%d %H:%M:%S"
#>
#> $yaml$FM$logging$log_file
#> [1] "formods_log.txt"
#>
#> $yaml$FM$logging$console
#> [1] TRUE
#>
#>
#>
#>
#> $MC
#> $MC$module
#> $MC$module$type
#> [1] "UD"
#>
#> $MC$module$depends
#> $MC$module$depends$id_ASM
#> [1] "ASM"
#>
#>
#>
#> $MC$compact
#> $MC$compact$code
#> [1] FALSE
#>
#> $MC$compact$preview
#> [1] TRUE
#>
#>
#> $MC$reporting
#> $MC$reporting$enabled
#> [1] FALSE
#>
#> $MC$reporting$priority
#> [1] 1
#>
#>
#> $MC$labels
#> $MC$labels$default_ds
#> [1] "Original data set"
#>
#> $MC$labels$workflow
#> [1] "Select workflow to run"
#>
#> $MC$labels$run_wf
#> [1] "Run Workflow"
#>
#> $MC$labels$upload_button
#> [1] "Select file"
#>
#> $MC$labels$tab_main
#> [1] "Upload file"
#>
#> $MC$labels$tab_code
#> [1] "Code"
#>
#> $MC$labels$tab_preview
#> [1] "Data preview"
#>
#> $MC$labels$switch_clean
#> [1] "Clean column names on upload"
#>
#> $MC$labels$rwf_success
#> [1] "Workflow complete."
#>
#> $MC$labels$busy
#> $MC$labels$busy$rwf
#> [1] "Running workflow be patient."
#>
#>
#> $MC$labels$msg_bad_extension
#> [1] "Incorrect file extension (===EXT===). Unable to load file ===FILE===.\nOnly the following extesions are allowed: ===ALLOWEDEXT===."
#>
#>
#> $MC$errors
#> $MC$errors$no_workflows_found
#> [1] "No valid workflows have been found"
#>
#> $MC$errors$no_ds_for_workflow
#> [1] "The selected workflow requires a dataset. Please upload a dataset first then run the workflow."
#>
#> $MC$errors$no_ds_for_workflow_short
#> [1] "Workflow not run, no dataset."
#>
#> $MC$errors$no_asm_state
#> [1] "Unable to read ASM state."
#>
#> $MC$errors$ss_failed
#> [1] "Unable to save workflow file."
#>
#> $MC$errors$ls_failed
#> [1] "Unable to load workflow file."
#>
#> $MC$errors$rwf_failed
#> [1] "Workflow failed."
#>
#>
#> $MC$tooltips
#> $MC$tooltips$include
#> [1] TRUE
#>
#> $MC$tooltips$show_code
#> [1] "Show data reading code"
#>
#>
#> $MC$formatting
#> $MC$formatting$preview
#> $MC$formatting$preview$width
#> [1] 800
#>
#> $MC$formatting$preview$height
#> [1] 500
#>
#>
#> $MC$formatting$code
#> $MC$formatting$code$width
#> [1] 500
#>
#> $MC$formatting$code$height
#> [1] 200
#>
#>
#> $MC$formatting$switch_clean
#> $MC$formatting$switch_clean$tooltip
#> [1] "Strange characters in column names can cause problems. When switched on, this will clean up the column headers and fix those that might break things."
#>
#> $MC$formatting$switch_clean$tooltip_position
#> [1] "bottom"
#>
#>
#> $MC$formatting$workflow
#> $MC$formatting$workflow$width
#> [1] "200px"
#>
#> $MC$formatting$workflow$liveSearch
#> [1] TRUE
#>
#> $MC$formatting$workflow$size
#> [1] 10
#>
#>
#> $MC$formatting$btn_run_wf
#> $MC$formatting$btn_run_wf$size
#> [1] "sm"
#>
#> $MC$formatting$btn_run_wf$width
#> [1] "200px"
#>
#> $MC$formatting$btn_run_wf$block
#> [1] TRUE
#>
#> $MC$formatting$btn_run_wf$tooltip
#> [1] "Run selected workflow"
#>
#> $MC$formatting$btn_run_wf$tooltip_position
#> [1] "right"
#>
#>
#>
#> $MC$allowed_extensions
#> [1] "csv" "tsv" "xls" "xlsx"
#>
#> $MC$code
#> $MC$code$packages
#> [1] "readxl" "readr" "janitor"
#>
#> $MC$code$readOnly
#> [1] TRUE
#>
#> $MC$code$mode
#> [1] "r"
#>
#> $MC$code$preamble
#> [1] "# Loading data ------------------------------------------------------------"
#>
#>
#> $MC$ds_object_name
#> [1] "myDS"
#>
#> $MC$clean_data
#> $MC$clean_data$enabled
#> [1] TRUE
#>
#> $MC$clean_data$default
#> [1] TRUE
#>
#> $MC$clean_data$code
#> [1] "# Make sure you put whatever packages you use here in the packages section\n# above.\n#\n# contents - data frame containing the loaded dataset.\n# code - code used to load the dataset you need to append any cleaning\n# code you generate here.\n# object_name - Name of the dataset object used in generated code.\nif(system.file(package=\"janitor\") != \"\"){\n contents = janitor::clean_names(contents, case=\"none\")\n code = paste0(code, '\\n', object_name, ' = janitor::clean_names(', object_name,', case=\"none\")')\n}"
#>
#>
#>
#> $UD
#> $UD$button_counters
#> $UD$button_counters$btn_run_wf
#> [1] 0
#>
#>
#> $UD$ui_hold
#> $UD$ui_hold$workflow
#> [1] FALSE
#>
#> $UD$ui_hold$btn_run_wf
#> [1] FALSE
#>
#>
#> $UD$ui_ids
#> [1] "workflow" "btn_run_wf"
#>
#> $UD$isgood
#> [1] TRUE
#>
#> $UD$code
#> [1] "myDS = readxl::read_excel(path=\"TEST_DATA.xlsx\", sheet=\"DATA\")\nmyDS = janitor::clean_names(myDS, case=\"none\")"
#>
#> $UD$object_name
#> [1] "myDS"
#>
#> $UD$checksum
#> [1] "079b8441fa383a01152784356bea85ae"
#>
#> $UD$ui
#> $UD$ui$workflow
#> [1] ""
#>
#> $UD$ui$btn_run_wf
#> [1] 0
#>
#>
#> $UD$ui_old
#> $UD$ui_old$workflow
#> [1] ""
#>
#> $UD$ui_old$btn_run_wf
#> [1] 0
#>
#>
#> $UD$data_file_local
#> [1] "/private/var/folders/pq/7srbf_fx3rd3k706hgxkg61r0000gp/T/RtmpcUKOgR/temp_libpath5bb2519acd9d/formods/test_data/TEST_DATA.xlsx"
#>
#> $UD$data_file_ext
#> [1] ".xlsx"
#>
#> $UD$data_file
#> [1] "TEST_DATA.xlsx"
#>
#> $UD$sheet
#> [1] "DATA"
#>
#> $UD$sheets
#> [1] "DATA" "DDT"
#>
#> $UD$contents
#> # A tibble: 10,680 × 33
#> ID TIME_DY TIME_HR NTIME_DY NTIME_HR TIME AMT DV RECDESC DOSE
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <dbl>
#> 1 1 0 0 0 0 0 3000000 0 dose 3000000
#> 2 1 0 0 0 0 0 0 1250 BM_ng_ml 3000000
#> 3 1 0 0 0 0 0 0 0 C_ng_ml 3000000
#> 4 1 1 24 1 24 24 0 1647 BM_ng_ml 3000000
#> 5 1 1 24 1 24 24 0 690. C_ng_ml 3000000
#> 6 1 2 48 2 48 48 0 1947 BM_ng_ml 3000000
#> 7 1 2 48 2 48 48 0 588. C_ng_ml 3000000
#> 8 1 3 72 3 72 72 0 2170 BM_ng_ml 3000000
#> 9 1 3 72 3 72 72 0 506. C_ng_ml 3000000
#> 10 1 4 96 4 96 96 0 2332 BM_ng_ml 3000000
#> # ℹ 10,670 more rows
#> # ℹ 23 more variables: DOSE_STR <chr>, Cohort <chr>, ROUTE <chr>, WT <dbl>,
#> # SUBTYPE <chr>, SEX <chr>, F1 <dbl>, ka <dbl>, CL <dbl>, Vc <dbl>, Vp <dbl>,
#> # Q <dbl>, BM_IC <dbl>, kdeg_BM <dbl>, Emax <dbl>, EC50 <dbl>, CMT <chr>,
#> # DUR <dbl>, EVID <dbl>, NDose <chr>, DOSE_NUM <dbl>, SUBTYPE_ID <dbl>,
#> # SEX_ID <dbl>
#>
#>
#> $MOD_TYPE
#> [1] "UD"
#>
#> $id
#> [1] "UD"
#>
#> $FM_yaml_file
#> [1] "/private/var/folders/pq/7srbf_fx3rd3k706hgxkg61r0000gp/T/RtmpcUKOgR/temp_libpath5bb2519acd9d/formods/templates/formods.yaml"
#>
#> $MOD_yaml_file
#> [1] "/private/var/folders/pq/7srbf_fx3rd3k706hgxkg61r0000gp/T/RtmpcUKOgR/temp_libpath5bb2519acd9d/formods/templates/UD.yaml"
#>
#> $shiny_token
#> [1] "non_shiny"
#>