我有一个R脚本,只打印今天的日期。它在Rstudio中运行得很好,但是当在批处理文件中设置为任务时,会产生以下错误
Warning message:
package 'dplyr' was built under R version 3.4.4
Loading required package: NLP
Warning message:
package 'tm' was built under R version 3.4.4
Error in today() : could not find function "today"
Execution halted
以下是脚本:
library(rvest)
library(dplyr)
library(tm)
yesterday <- today()
yesterday <- gsub("-", "", yesterday, fixed=TRUE)
print(yesterday)
批处理文件:
"C:\Program Files\R\R-3.4.2\bin\R.exe" CMD BATCH --vanilla --slave "C:\Users\mike\Desktop\Make_Task\TEST_YESTERDAY.R"
timeout /t 5
答案 0 :(得分:3)
当您不知道R函数的来源时,建议您搜索rdocumentation.org for the name of the function。在这些结果中,您可以看到today
来自lubridate
软件包。
就个人而言,我建议使用内置的Sys.Date()
来消除外部依赖性。但是将library(lubridate)
添加到脚本顶部也应该可以(假设已安装lubridate
)。
答案 1 :(得分:1)
today()
函数来自lubridate
包。您可能是在RStudio中手动加载了该软件包,因此不在您的代码中。只需在脚本的开头添加library(lubridate)
,就可以了。
或者,您也可以从r-base使用Sys.Date()
答案 2 :(得分:0)
先尝试使用 lubridate
,然后尝试使用 today()
或 now()
你会得到答案。
install.packages("lubridate")
library("lubridate")
today()
[1] "2021-04-26"
now()
[1] "2021-04-26 07:09:37 UTC"