我知道,可以使用cron调度程序来调度脚本和进程,以便从R本身在特定的时间点自动执行R进程。我还知道,您可以将函数放在您的.Rprofile中,以便在每次启动R时执行它们。
我知道如何只在星期一在.First()中运行函数,但希望它只在周一用户第一次打开RStudio时才运行。
这就是我到目前为止在我的.Rprofile中得到的
.First <- function(){
today <- weekdays(as.Date(Sys.Date()))
if (today == "Monday"){
print("Today is "Monday")
} else {
print("Today is not Monday")
}
}我想在这段代码中添加一种方式来检查日志,并且只在用户第一次登录时显示消息,而不是每次他们打开/关闭项目、重新启动R等等。
发布于 2019-03-31 20:01:48
此代码测试一个名为LogFile.txt的文件。Ypu可能想给它起别的名字,或者把它隐藏在某个不知名的目录中。如果文件存在,代码将读取文件的第一行。然后,它将今天的日期存储在文件的第一行中,以处理以后的登录。如果文件的第一行包含今天的日期,则函数只返回,这样星期一的测试就不会运行。如果该文件不存在或不包含今天的日期,则将运行星期一测试。
.First <- function(){
today <- as.Date(Sys.Date())
LastLog <- ""
if(file.exists("LogFile.txt")) {
LogFile <- file("LogFile.txt", open="r")
LastLog <- readLines(LogFile, 1L)
close(LogFile)
}
LogFile <- file("LogFile.txt", open="w")
writeLines(as.character(today), LogFile)
close(LogFile)
if(LastLog == as.character(today)) {
# Already logged on today, just exit
return()
}
## If you get here, Need to run the first login code
DOW <- weekdays(today)
if (DOW == "Monday") {
print("Today is Monday")
} else {
print("Today is not Monday")
}
}https://stackoverflow.com/questions/55443232
复制相似问题