TaskschedulerR 不在 RGui 中启动 script.R
TaskschedulerR doesn´t start script.R in RGui
我的将军Objective:
使用 R.
从网站加载值并将这些值存储在列表中 R.
手动启动 R 脚本工作并将相应的值保存在 .txt 文件中(因此,基本上工作流程按预期工作)。不幸的是,taskscheduleR
的自动化尝试没有达到预期效果。
我刚刚开始使用 R(我知道我的代码包含不必要的部分,我将在工作流完全正常工作后重构代码)。
# ------------------- NECESSARY PACKAGES -----------------------
install.packages("lubridate")
install.packages("rvest")
install.packages("XML")
install.packages("xml2")
install.packages("httr")
install.packages("taskscheduleR")
library(xml2)
library(lubridate)
library(rvest)
library(XML)
library(httr)
library(taskscheduleR)
#----------------------------[ 1 ]-----------------------------
# define paths of subscripts
path1 <- "C:/Users/Dorian/Desktop/R/script_link_1.R"
path2 <- "C:/Users/Dorian/Desktop/R/script_link_2.R"
path3 <- "C:/Users/Dorian/Desktop/R/script_link_3.R"
path4 <- "C:/Users/Dorian/Desktop/R/script_link_4.R"
path5 <- "C:/Users/Dorian/Desktop/R/script_link_5.R"
path6 <- "C:/Users/Dorian/Desktop/R/script_link_6.R"
val1 <- source(path1)
val2 <- source(path2)
val3 <- source(path3)
val4 <- source(path4)
val5 <- source(path5)
val6 <- source(path6)
#----------------------------[ 2 ]-----------------------------
# this code opens the script and saves values to .txt files
path_op <- "C:/Users/Dorian/Desktop/R/operations_skript.R"
op <- source(path_op)
代码operations_skript.R:
list1 <- list(header = FALSE)
list2 <- list(header = FALSE)
list3 <- list(header = FALSE)
list4 <- list(header = FALSE)
list5 <- list(header = FALSE)
list6 <- list(header = FALSE)
list1 <- c()
list2 <- c()
list3 <- c()
list4 <- c()
list5 <- c()
list6 <- c()
for (i in 1:6){
if (i==1) {list1 <- c(list1, val1[1])}
if (i==2) {list2 <- c(list2, val2[1])}
if (i==3) {list3 <- c(list3, val3[1])}
if (i==4) {list4 <- c(list4, val4[1])}
if (i==5) {list5 <- c(list5, val5[1])}
if (i==6) {list6 <- c(list6, val6[1])}
}
lapply(list1, write, "bid1.txt", append=TRUE, ncolumns=1000)
lapply(list2, write, "bid2.txt", append=TRUE, ncolumns=1000)
lapply(list3, write, "bid3.txt", append=TRUE, ncolumns=1000)
lapply(list4, write, "bid4.txt", append=TRUE, ncolumns=1000)
lapply(list5, write, "bid5.txt", append=TRUE, ncolumns=1000)
lapply(list6, write, "bid6.txt", append=TRUE, ncolumns=1000)
script_link_1.R
的代码:(我没有 post script_link_2:6 因为,唯一的区别是另一个 link 对其他网站的用法)
link1 <- "https://www.tradegate.de/orderbuch.php?isin=CA40638K5070" #camber
document <- htmlParse(GET(link1, user_agent("Mozilla")))
removeNodes(getNodeSet(document,"//*/comment()"))
doc.tables<-readHTMLTable(document, header=FALSE)
# Extract column from BID/ASK table
BidAsk = doc.tables[[2]][,2]
# Replace commas with point decimal separator
BidAsk = as.numeric(gsub(",", ".", BidAsk))
# Convert to numeric
BidAsk = as.numeric(BidAsk)
list1 <- list()
list1 <- c(BidAsk[1], BidAsk[2])
print(list1)
我想用 taskscheduleR
自动执行此任务,因为我想每分钟都执行此任务。我这样试过:
#----------------------------[ 3 ]-----------------------------
# scheduledtask for automatic saving data to .txt files every minute
save_to_txt <- file.path("C:/Users/Dorian/Desktop", "R", "operations_skript.R")
taskscheduler_create(taskname = "saving", rscript = save_to_txt,
schedule = "MINUTE", starttime = "23:45", modifier = 1)
taskscheduler_delete(taskname = "saving") # for stopping the task
这里的问题是任务可以创建成功,但是后面的脚本没有执行:
[1] "ERFOLGREICH: Die geplante Aufgabe \"saving\" wurde erfolgreich erstellt."
如果我像 [ 2 ] 中那样手动启动它,它会按预期工作(将值存储在 6x .txt 文件中)。
taskscheduleR
仅每分钟快速打开一个 cmd
几毫秒,但不保存任何数据。我也查看了硬盘上的另一个位置,但没有存储任何内容。
我需要解锁任何权限吗?这与错误的路径有什么关系吗?
您是否查看了日志(您的脚本位于 C:/Users/Dorian/Desktop/R
)并在写入磁盘时提供了完整路径?
lapply(list1, write, "bid1.txt", append=TRUE, ncolumns=1000)
应该是完整路径,例如
lapply(list1, `write`, "C:/Users/Dorian/Desktop/bid1.txt", append=TRUE, ncolumns=1000)
相关错误是,operations_skript.R
无法找到 val1...val6 对象的路径,并且无法使用函数 readHTMLtable()
和 htmlParse()
也没有在第二个脚本中附加库。
感谢您的帮助,以后我会经常查看日志文件。
我的将军Objective:
使用 R.
从网站加载值并将这些值存储在列表中 R.
手动启动 R 脚本工作并将相应的值保存在 .txt 文件中(因此,基本上工作流程按预期工作)。不幸的是,taskscheduleR
的自动化尝试没有达到预期效果。
我刚刚开始使用 R(我知道我的代码包含不必要的部分,我将在工作流完全正常工作后重构代码)。
# ------------------- NECESSARY PACKAGES -----------------------
install.packages("lubridate")
install.packages("rvest")
install.packages("XML")
install.packages("xml2")
install.packages("httr")
install.packages("taskscheduleR")
library(xml2)
library(lubridate)
library(rvest)
library(XML)
library(httr)
library(taskscheduleR)
#----------------------------[ 1 ]-----------------------------
# define paths of subscripts
path1 <- "C:/Users/Dorian/Desktop/R/script_link_1.R"
path2 <- "C:/Users/Dorian/Desktop/R/script_link_2.R"
path3 <- "C:/Users/Dorian/Desktop/R/script_link_3.R"
path4 <- "C:/Users/Dorian/Desktop/R/script_link_4.R"
path5 <- "C:/Users/Dorian/Desktop/R/script_link_5.R"
path6 <- "C:/Users/Dorian/Desktop/R/script_link_6.R"
val1 <- source(path1)
val2 <- source(path2)
val3 <- source(path3)
val4 <- source(path4)
val5 <- source(path5)
val6 <- source(path6)
#----------------------------[ 2 ]-----------------------------
# this code opens the script and saves values to .txt files
path_op <- "C:/Users/Dorian/Desktop/R/operations_skript.R"
op <- source(path_op)
代码operations_skript.R:
list1 <- list(header = FALSE)
list2 <- list(header = FALSE)
list3 <- list(header = FALSE)
list4 <- list(header = FALSE)
list5 <- list(header = FALSE)
list6 <- list(header = FALSE)
list1 <- c()
list2 <- c()
list3 <- c()
list4 <- c()
list5 <- c()
list6 <- c()
for (i in 1:6){
if (i==1) {list1 <- c(list1, val1[1])}
if (i==2) {list2 <- c(list2, val2[1])}
if (i==3) {list3 <- c(list3, val3[1])}
if (i==4) {list4 <- c(list4, val4[1])}
if (i==5) {list5 <- c(list5, val5[1])}
if (i==6) {list6 <- c(list6, val6[1])}
}
lapply(list1, write, "bid1.txt", append=TRUE, ncolumns=1000)
lapply(list2, write, "bid2.txt", append=TRUE, ncolumns=1000)
lapply(list3, write, "bid3.txt", append=TRUE, ncolumns=1000)
lapply(list4, write, "bid4.txt", append=TRUE, ncolumns=1000)
lapply(list5, write, "bid5.txt", append=TRUE, ncolumns=1000)
lapply(list6, write, "bid6.txt", append=TRUE, ncolumns=1000)
script_link_1.R
的代码:(我没有 post script_link_2:6 因为,唯一的区别是另一个 link 对其他网站的用法)
link1 <- "https://www.tradegate.de/orderbuch.php?isin=CA40638K5070" #camber
document <- htmlParse(GET(link1, user_agent("Mozilla")))
removeNodes(getNodeSet(document,"//*/comment()"))
doc.tables<-readHTMLTable(document, header=FALSE)
# Extract column from BID/ASK table
BidAsk = doc.tables[[2]][,2]
# Replace commas with point decimal separator
BidAsk = as.numeric(gsub(",", ".", BidAsk))
# Convert to numeric
BidAsk = as.numeric(BidAsk)
list1 <- list()
list1 <- c(BidAsk[1], BidAsk[2])
print(list1)
我想用 taskscheduleR
自动执行此任务,因为我想每分钟都执行此任务。我这样试过:
#----------------------------[ 3 ]-----------------------------
# scheduledtask for automatic saving data to .txt files every minute
save_to_txt <- file.path("C:/Users/Dorian/Desktop", "R", "operations_skript.R")
taskscheduler_create(taskname = "saving", rscript = save_to_txt,
schedule = "MINUTE", starttime = "23:45", modifier = 1)
taskscheduler_delete(taskname = "saving") # for stopping the task
这里的问题是任务可以创建成功,但是后面的脚本没有执行:
[1] "ERFOLGREICH: Die geplante Aufgabe \"saving\" wurde erfolgreich erstellt."
如果我像 [ 2 ] 中那样手动启动它,它会按预期工作(将值存储在 6x .txt 文件中)。
taskscheduleR
仅每分钟快速打开一个 cmd
几毫秒,但不保存任何数据。我也查看了硬盘上的另一个位置,但没有存储任何内容。
我需要解锁任何权限吗?这与错误的路径有什么关系吗?
您是否查看了日志(您的脚本位于 C:/Users/Dorian/Desktop/R
)并在写入磁盘时提供了完整路径?
lapply(list1, write, "bid1.txt", append=TRUE, ncolumns=1000)
应该是完整路径,例如
lapply(list1, `write`, "C:/Users/Dorian/Desktop/bid1.txt", append=TRUE, ncolumns=1000)
相关错误是,operations_skript.R
无法找到 val1...val6 对象的路径,并且无法使用函数 readHTMLtable()
和 htmlParse()
也没有在第二个脚本中附加库。
感谢您的帮助,以后我会经常查看日志文件。