запустить скрипт r из скрипта r и изменить некоторые значения - PullRequest
0 голосов
/ 13 октября 2018

У меня есть скрипт R, который я хотел бы запустить для импорта некоторых данных.Сценарий R называется load_in_year1-4.Я разработал этот сценарий так, что мне нужно всего лишь внести 3 изменения в код в верхней части, и все будет работать и импортировать правильные файлы данных.

3 изменения:

year <- "Year4"
weeks <- "1270_1321"
product <- "/cookies"

Однако у меня есть данные за 20 лет и более 50 продуктов.

В настоящее время я вручную изменяю верхнюю часть каждого файла и запускаю его, поэтому у меня нет ошибок в данных.

Я хотел бы создать отдельный R-скрипт, который будет запускать текущий скрипт.

Я хотел бы иметь что-то вроде

year <- c("year1", "year2", "year3"....)
weeks <- c("1270_1321", "1321_1327"....)
product <- c("product1", "product2"....)

Так что это займет год 1,неделю 1270_1321 и product1, назовите их year, week, product и запустите сценарий R, который я создал.

Есть ли какая-либо функция сетки, которую кто-нибудь может предложить?

РЕДАКТИРОВАТЬ: У меня есть что-то вроде следующего

#Make changes here
year <- "Year11"
weeks <- "1635_1686"
product <- "/cigets"

# year1: "1114_1165", year2: "1166_1217", year3: "1218_1269"


#Does not need changing
files <- gsub("Year1", as.character(year), "E:/DATA/Dataset/Year1")

parsedstub <- "E:/DATA/Dataset/files/"
produc <- paste0("prod", gsub("/", "_", as.character(product)))

drug <- "_drug_"
groc <- "_groc_"

####################Reading in the data###########################################

drug <- read.table(paste0(files, product, product, drug, weeks), header = TRUE)
groc <- read.table(paste0(files, product, product, groc, weeks), header = TRUE)

1 Ответ

0 голосов
/ 13 октября 2018

Чтобы сделать функцию из вашего скрипта, сделайте что-то вроде этого:

get.tables <- function(year,weeks,product){
  files <- gsub("Year1", as.character(year), "E:/DATA/Dataset/Year1")
  parsedstub <- "E:/DATA/Dataset/files/"
  product <- paste0("prod", gsub("/", "_", as.character(product)))
  drug <- "_drug_"
  groc <- "_groc_"
  ####################Reading in the data###########################################
  drug <- read.table(paste0(files, product, product, drug, weeks), header = TRUE)
  groc <- read.table(paste0(files, product, product, groc, weeks), header = TRUE)
  list(drug = drug, groc = groc)
}

Затем вы можете использовать что-то в семействе apply, чтобы применить эту функцию к разным годам, неделям и продуктам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...