我有下面提到的代码,可以下载谷歌表并将其存储在Documents
。
library(dplyr)
library(data.table)
library(googlesheets)
library(rJava)
t.start<-Sys.Date()
t.start<-as.character(t.start)
#gs_auth(new_user = TRUE)
#gs_ls()
#gs_auth()
as<-gs_title("XYZ")
gs_download(as, overwrite = TRUE)
我希望工作表XYZ
存储到具有下述条件的特定位置(即E:\My_data\File
)。
XYZ
。 (例如,如果Sys.Date = 01/01 / 2017且时间<15:00,则名称应为01/01/2017_A_XYZ.xlsx' for >15:00 hrs it should be
01/01 / 2017_B_XYZ.xlsx')E:\My_data\File
创建文件夹。如果Sys.Date()= 01/01/2017,那么会有一个名为2017
的文件夹和一个名为Jan-17
的子文件夹,并且在子文件夹中会有2个子文件夹{{1} (对于特定年份/月份的文件&lt; 15:00小时)和A
(对于特定年份/月份的文件&gt; 15:00小时)。答案 0 :(得分:1)
您可以使用以下代码执行此操作:
# To handle the googlesheets
require(googlesheets)
# For easier date manipulation
require(lubridate)
# Get current time
t <- Sys.time()
# Set your base path and create the basic file structure
base_path <- "E:/My_data/File"
dir.create(paste0(base_path, year(t)))
sub_folder_path <- paste0(base_path, year(t), "/", month(t, label = TRUE), "-", day(t))
dir.create(sub_folder_path)
AB_split <- ifelse(hour(t)<15, "A", "B")
dir.create(paste0(sub_folder_path, "/", AB_split))
# Set your gsheet title and the wanted file-name
ws_title <- "XYZ"
ws_file_name <- paste0(date(t), "_", AB_split, "_", ws_title, ".xlsx")
ws_file_path <- paste0(sub_folder_path, "/", AB_split, "/", ws_file_name)
# Download it
as<-gs_title(ws_title)
gs_download(as, to = ws_file_path, overwrite = TRUE)
如果出现警告,尝试创建现有文件夹。如果您想要压制警告,请在create.dir
suppressWarnings(create.dir(...))
次来电
我强烈建议使用 NOT 来处理工作表标题,而是使用密钥。见?gs_key