使用不在 Task Scheduler R 环境中的变量
Using Variables that are Not in the Enviornment of the Task Scheduler R
我正在创建一个 Rscript,它将通过 taskscheduleR 包每 30 分钟 运行。但是,有些变量需要每 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 分钟 运行s 的脚本中读取它。我想知道是否有一种方法可以在一个脚本上完成所有这些,谢谢。
#script_OnceAweek.R
x = 1:10
write.csv(x, "file.csv")
#script_Every30min.R
k = read.csv("file.csv")
y = k*5
据我所知,无法区分同一文件中某些行的执行时间,因为您为每个文件安排的任务应该是 运行。
但我或许可以使不同文件之间的数据交换更容易一些。
当您只有一个数据对象要在脚本之间交换时:
#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 时,它会变得非常复杂。
您可以首先使用 if 语句检查您更新每周 CSV 的时间。您可以使用 file.info
和 Sys.time
.
info <- file.info("yourfile")
Sys.time() - info$mtime
如果是一周前的,更新它,如果不是,跳过那一步。
我正在创建一个 Rscript,它将通过 taskscheduleR 包每 30 分钟 运行。但是,有些变量需要每 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 分钟 运行s 的脚本中读取它。我想知道是否有一种方法可以在一个脚本上完成所有这些,谢谢。
#script_OnceAweek.R
x = 1:10
write.csv(x, "file.csv")
#script_Every30min.R
k = read.csv("file.csv")
y = k*5
据我所知,无法区分同一文件中某些行的执行时间,因为您为每个文件安排的任务应该是 运行。
但我或许可以使不同文件之间的数据交换更容易一些。
当您只有一个数据对象要在脚本之间交换时:
#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 时,它会变得非常复杂。
您可以首先使用 if 语句检查您更新每周 CSV 的时间。您可以使用 file.info
和 Sys.time
.
info <- file.info("yourfile")
Sys.time() - info$mtime
如果是一周前的,更新它,如果不是,跳过那一步。