有人可以解释一下 R 中“extdata”的含义吗?
例如,我正在查看 R 中的“cronR”库(用于自动调度作业),并遇到了术语“extdata”:
f <- system.file(package = "cronR", "extdata", "helloworld.R")
cmd <- cron_rscript(f)
cmd
cron_add(command = cmd, frequency = 'minutely',
id = 'test1', description = 'My process 1', tags = c('lab', 'xyz'))
cron_add(command = cmd, frequency = 'daily', at='7AM', id = 'test2')
cron_njobs()
cron_ls()
cron_clear(ask=TRUE)
cron_ls()
Run Code Online (Sandbox Code Playgroud)
同样,“taskscheduleR”包(也用于自动调度作业)也引用了“extdata”:
library(taskscheduleR)
myscript <- system.file("extdata", "helloworld.R", package = "taskscheduleR")
## run script once within 62 seconds
taskscheduler_create(taskname = "myfancyscript", rscript = myscript,
schedule = "ONCE", starttime = format(Sys.time() + 62, "%H:%M"))
Run Code Online (Sandbox Code Playgroud)
我的问题:有人可以解释一下什么是“extdata”吗?这只是需要添加到“system.file()”命令中的一些“形式”吗?有人可以在这里解释一下它的相关性吗?
谢谢!
参考:
这是一个惯例,而不是正式定义的术语。(但是,这是由包作者定义并在包结构中编码的约定;除非您自己弄乱包结构,否则您无法更改它。)“extdata”可能是“外部数据”的缩写。
然而,这并不意味着您在构建自己的代码时需要使用“extdata”;而是意味着您需要使用“extdata”。仅当查找包中包含的文件时才需要它。 cron_rscript("~/my_cron_jobs/foo.R")应该可以正常工作(前提是您确实有一些东西,并且~== 主目录快捷方式可以跨操作系统工作,我认为确实如此)。
system.file()接受一个package参数,但否则将其参数串在一起形成文件路径;即system.file(package = "cronR", "extdata", "helloworld.R")意味着
cronR(在我的例子中是/usr/local/lib/R/site-library/cronR,但精确位置会因操作系统和配置而异)extdata文件夹helloworld.R所以这个命令在我的例子中将引用/usr/local/lib/R/site-library/cronR/extdata/helloworld.R.
由于“/”作为所有当前操作系统的路径分隔符(至少在 R 中使用时),因此您将获得相同的结果system.file(package="cronR", "extdata/helloworld.R")