Crontab R 脚本因导入功能而失败(Rstudio 已关闭)
Crontab R script failing due to import function (Rstudio is closed)
我正在尝试 运行 使用 crontab 并关闭 Rstudio 的 Rscript,当脚本为 运行:
时,我在日志中收到以下错误
Warning message:
package ‘dplyr’ was built under R version 4.0.2
Error in import("~/Desktop/R/Projects/TestFile.csv", :
could not find function "import"
Execution halted
根据我对 crontab 功能的有限了解,我的理解是 'import' 函数只能在打开 Rstudio 的情况下使用。有没有办法解决这个问题,例如使用替代函数导入一个可以使用 crontab 读取的文件?
注意:脚本在 Rstudio 运行 时有效。
编辑:
crontab 指令:
if (!require("cronR")) {
install.packages("cronR")
library(cronR)
}
cron_clear(ask=FALSE)
f <- "~/Desktop/R/Projects/MyRCode.R"
cmd <- cron_rscript(f)
cmd
cron_add(cmd, frequency = "daily", id = "test", at = "16:30")
脚本:
library("miniUI")
library("shinyFiles")
library(quantmod)
if (!require("httr")) {
install.packages("httr")
library(httr)
}
if (!require("jsonlite")) {
install.packages("jsonlite")
library(jsonlite)
}
if (!require("gsubfn")) {
install.packages("gsubfn")
library(gsubfn)
}
if (!require("rjson")) {
install.packages("rjson")
library(rjson)
}
if (!require("RJSONIO")) {
install.packages("RJSONIO")
library(RJSONIO)
}
library(dplyr)
rio_csv <- import("~/Desktop/R/Projects/TestFile.csv",stringsAsFactors=FALSE)
df <- data.frame("Ticker" = rio_csv[,1],"Amount" = rio_csv[,3], "Shares" = rio_csv[,6],"Average"= rio_csv[,8])
write_json(df,"~/Desktop/R/Projects/JSONFile.json")
函数导入来自 rio 包。您的自动化脚本失败,因为您没有像 library(rio)
那样加载 rio 包。如果你没有加载包 rio,这甚至不能在 RStudio 本身中工作。
试试这个:
install.packages("里约热内卢")
install_formats()
我正在尝试 运行 使用 crontab 并关闭 Rstudio 的 Rscript,当脚本为 运行:
时,我在日志中收到以下错误Warning message:
package ‘dplyr’ was built under R version 4.0.2
Error in import("~/Desktop/R/Projects/TestFile.csv", :
could not find function "import"
Execution halted
根据我对 crontab 功能的有限了解,我的理解是 'import' 函数只能在打开 Rstudio 的情况下使用。有没有办法解决这个问题,例如使用替代函数导入一个可以使用 crontab 读取的文件?
注意:脚本在 Rstudio 运行 时有效。
编辑:
crontab 指令:
if (!require("cronR")) {
install.packages("cronR")
library(cronR)
}
cron_clear(ask=FALSE)
f <- "~/Desktop/R/Projects/MyRCode.R"
cmd <- cron_rscript(f)
cmd
cron_add(cmd, frequency = "daily", id = "test", at = "16:30")
脚本:
library("miniUI")
library("shinyFiles")
library(quantmod)
if (!require("httr")) {
install.packages("httr")
library(httr)
}
if (!require("jsonlite")) {
install.packages("jsonlite")
library(jsonlite)
}
if (!require("gsubfn")) {
install.packages("gsubfn")
library(gsubfn)
}
if (!require("rjson")) {
install.packages("rjson")
library(rjson)
}
if (!require("RJSONIO")) {
install.packages("RJSONIO")
library(RJSONIO)
}
library(dplyr)
rio_csv <- import("~/Desktop/R/Projects/TestFile.csv",stringsAsFactors=FALSE)
df <- data.frame("Ticker" = rio_csv[,1],"Amount" = rio_csv[,3], "Shares" = rio_csv[,6],"Average"= rio_csv[,8])
write_json(df,"~/Desktop/R/Projects/JSONFile.json")
函数导入来自 rio 包。您的自动化脚本失败,因为您没有像 library(rio)
那样加载 rio 包。如果你没有加载包 rio,这甚至不能在 RStudio 本身中工作。
试试这个:
install.packages("里约热内卢") install_formats()