我的google驱动器中有一个xlsx文件。它太大,所以它不会自动转换为googlesheet(这就是为什么使用googlesheets包不起作用)。文件很大,我甚至无法通过在googledrive上点击它来预览它。看到它的唯一方法是下载为.xlsx。虽然我可以将其加载为xlsx文件,但我正在尝试使用googledrive软件包。
到目前为止我所拥有的是:
library(googledrive)
drive_find(n_max = 50)
drive_download("filename_without_extension.xlsx",type = "xlsx")
但我收到以下错误:
'file'无法识别至少一个云端硬盘文件。
也许我没有指定文件所在的路径。例如:Work \ Data \ Project1 \ filename.xlsx
你能否告诉我如何在R中加载一个嵌套在驱动器中的名为filename.xlsx
的文件?
我阅读了文档,但无法弄清楚如何做到这一点。谢谢。
答案 0 :(得分:2)
您应该可以通过以下方式执行此操作:
library(googledrive)
drive_download("~/Work/Data/Project1/filename.xlsx")
type
参数仅适用于Google原生电子表格,不适用于原始文件。
答案 1 :(得分:0)
我想分享我的方式。
我这样做是因为我一直在更新xlsx文件。这是来自ERP的查询结果。
因此,当我尝试通过googleDrive ID进行操作时,由于每次ERP更新文件的ID更改,都会给我带来错误。
这是我的情况。您的可以完全不同。该文件每月仅更改2到3次。即使是一个“大” xlsx文件(具有19个因子的78-80K记录),我也只用了几秒钟就可以计算出一些值,然后将其丢弃。存储它没有任何意义。 (存储比上传要贵)
library(googledrive)
library(googlesheets4) # watch out: it is not the CRAN version yet 0.1.1.9000
drive_folder_owner<-"carlos.sxxx@xxxxxx.com" # this is my account in this gDrive folder.
drive_auth(email =drive_folder_owner) # previously authorized account
googlesheets4::sheets_auth(email =drive_folder_owner) # Yes, I know, should be the same, but they are different.
d1<-drive_find(pattern = "my_file.xlsx",type = drive_mime_type("xlsx")) # This is me finding the file created by the ERP, and I do shorten the search using the type
meta<-drive_get(id=d1$id)[["drive_resource"]] # Get the id from the file in googledrive
n_id<-glue("https://drive.google.com/open?id=",d1$id[[1]]) # here I am creating a path for reading
meta_name<- paste(getwd(),"/Files/",meta[[1]]$originalFilename,sep = "") # and a path to temporary save it.
drive_download(file=as_id(n_id),overwrite = TRUE, path = meta_name) # Now read and save locally.
V_CMV<-data.frame(read_xlsx(meta_name)) # store to data frame
file.remove(meta_name) # delete from R Server
rm(d1,n_id) # Delete temporary variables