我越来越多地使用 RStudio,并且最常创建 .R、.Rmd 和 .html 等文件。
我想要版本/使版本控制成为可能。因此,我将文件上传到 OneDrive,但当然只有当我记得使用 CTRL+S 保存时才会保存文件。
有没有办法将 R 文档设置为每 5 分钟自动保存一次,或类似的方法?
虽然没有什么可以替代养成定期执行 CTRL+S 每次进行更改的习惯,但您可以使用
later
包和自定义函数来实现您想要的结果。
下面的 auto_save 函数将一直运行,直到您关闭 R 会话。它还会检查以确保您列出/想要保存的文件存在,并将在控制台中打印一条消息,让您知道每个文件的保存时间。
要检查该功能是否按预期工作(无需等待五分钟),我建议将
later(auto_save, delay = 300)
更改为 later(auto_save, delay = 10)
之类的内容。然后,一旦您确定它有效:
later(auto_save, delay = 300)
later(auto_save, delay = 0)
install.packages("later")
library(later)
auto_save <- function() {
# Files in your working directory you want to save (add more where necessary)
files <- c("your_script.R", "your_rmd.Rmd")
# OneDrive path for saving files
onedrive_path <- "C:/path/to/your/onedrive"
# Define the destination file paths
backup_files <- file.path(onedrive_path, files)
# Copy files but only if they exist, print status to console
lapply(seq_along(files), function(i) {
if (file.exists(files[i])) {
file.copy(files[i], backup_files[i], overwrite = TRUE)
cat("Saved:", files[i], "\n to:", backup_files[i], "\n at:",
format(Sys.time(), "%Y-%m-%d %H:%M:%S"), "\n")
} else {
print(paste("File not found:", files[i]))
}
})
# Schedule function to run again after n seconds
later(auto_save, delay = 300)
}
运行自动保存功能:
later(auto_save, delay = 0)