Использование переменных, не входящих в состав планировщика заданий R - PullRequest
0 голосов
/ 04 июня 2019

Я создаю Rscript, который будет запускаться каждые 30 минут с помощью пакета taskscheduleR.Однако есть переменные, которые необходимо обновлять каждые 30 минут, а некоторые переменные следует обновлять только раз в неделю.Я хотел бы, чтобы переменные, которые являются частью еженедельного планирования, все еще находились в глобальной среде.Например,

#Define a variable x that gets run once per week.
x = 10

#Define a variable y that gets run every thirty minutes. 
y = x*5
print(y)

Возможно, мне понадобятся 2 сценария, в которых первый сценарий я записываю данные в csv, а затем считываю их в сценарии, который выполняется каждые 30 минут.Мне было интересно, если бы был способ сделать все это на одном скрипте спасибо.

#script_OnceAweek.R
x = 1:10
write.csv(x, "file.csv")

#script_Every30min.R
k = read.csv("file.csv")
y = k*5

Ответы [ 2 ]

2 голосов
/ 04 июня 2019

Вы можете проверить, как давно вы обновляли еженедельный CSV с помощью оператора if.Вы можете использовать file.info и Sys.time.

info <- file.info("yourfile") Sys.time() - info$mtime

Если ему неделя, обновите его, если нет, пропустите этот шаг.

1 голос
/ 04 июня 2019

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

Но я мог бы немного облегчить обмен данными между различными файлами.

Если у вас есть только один объект данных для обмена между скриптами:

#script_OnceAweek.R
x = 1:10
saveRDS(x, file = "file.csv")

#script_Every30min.R
k = readRDS("file.csv")
y = k*5

Если у вас есть несколько объектов данных:

#script_OnceAweek.R
x = 1:10
y = 4:6
save(x, y, file = "file.csv")

#script_Every30min.R
load("file.csv")
k = x
y = k*5

Первое решение будет сохранено в файл .RDS, а второе - в файл .Rdata.

Приятно то, что вы можете сохранять все типы данных R, а также загружать их как типы данных R. Это означает, что вы можете даже сохранить объекты, например, списки фреймов данных.

Когда вы будете использовать CSV для этого, это будет очень сложно.

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