#!/usr/bin/env Rscript
args <- commandArgs(trailingOnly = TRUE)
if (length(args) != 5) {
stop("Usage: Rscript make_run_files.R input_data_path input_data_ext input_data_file nfolds_info model_type")
}
# read in input data and fold information from cross_validation.R
input_data_path = args[1]
input_data_ext = args[2]
input_data_file = args[3]
nfolds_info = args[4]
model_type = args[5]
input_data <- read_file(input_data_path,input_data_ext,input_data_file)
nfolds_data <- read.table(nfolds_info, header = FALSE, stringsAsFactors = FALSE, fill = TRUE)
model_type <- model_select(model_type)
run_files_dir <- "fold_run_files"
if (!dir.exists(run_files_dir)) {
dir.create(run_files_dir)
}
template_script <- readLines("call_script.R")
#iterate over each fold and create a run file
for (i in seq_len(nrow(nfolds_data))) {
fold_number <- i
train_indices <- as.numeric(unlist(strsplit(nfolds_data[i, 2], ", ")))
test_indices <- as.numeric(unlist(strsplit(nfolds_data[i, 3], ", ")))
#modify the template script with the appropriate train and test indices
modified_script <- template_script
modified_script <- gsub("TRAIN_INDICES_VAR", paste(train_indices, collapse = ", "), modified_script)
modified_script <- gsub("TEST_INDICES_VAR", paste(test_indices, collapse = ", "), modified_script)
modified_script <- gsub("INPUT_DATA_PATH_VAR", input_data_path, modified_script)
modified_script <- gsub("INPUT_DATA_EXT_VAR", input_data_ext, modified_script)
modified_script <- gsub("INPUT_DATA_FILE_VAR", input_data_file, modified_script)
modified_script <- gsub("MODEL_TYPE_VAR", model_type, modified_script)
#write the modified script to a new file in the run_files directory
run_file_name <- file.path(run_files_dir, paste0("run_file_fold", fold_number, ".R"))
writeLines(modified_script, run_file_name)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.