如何将R数据框上传到Google驱动器?

时间:2018-07-12 10:21:49

标签: r r-googlesheets

我正在使用来自CRAN的googledrive软件包。但是,函数-drive_upload允许您上载本地文件而不是数据帧。有人可以帮忙吗?

4 个答案:

答案 0 :(得分:0)

只需将有问题的data_frame保存到本地文件。最基本的选择是保存为CSV或保存RData。

示例:

test <- data.frame(a = 1)
tempFileCon <- file()
write.csv(test, file = tempFileCon)
rm(test)
load("test.Rds")
exists("test")

由于已明确说明无法使用临时文件,我们可以使用文件连接。

test <- data.frame(a = 1)
tempFileCon <- file()
write.csv(test, file = tempFileCon)

现在,我们在内存中有了文​​件连接,可用于提供其他功能。警告-使用文字对象名称来解决它,而不要像处理实际文件一样使用引号。

答案 1 :(得分:0)

不幸的是,我找不到直接将数据框向上推的方法,而只是为其他文档提供文档,试图使此问题涉及的基础知识得以实现,是通过以下代码编写的,该代码编写了一个本地.csv,然后将其弹回tidyverse::googledrive来表示自己为googlesheet。

write_csv(iris, 'df_iris.csv')
drive_upload('df_iris.csv', type='spreadsheet')

答案 2 :(得分:0)

您可以使用googlesheets包中的gs_add_row来实现。此API直接接受数据框作为输入参数,并将数据上传到指定的Google工作表。不需要本地文件。

在?gs_add_row的帮助部分中:

“如果输入是二维的,则内部每个输入行调用gs_add_row。”

答案 3 :(得分:0)

这可以通过两种方式完成。就像其他人提到的那样,可以创建本地文件并上传。也可以在驱动器中创建新的电子表格。该电子表格将在您的驱动器的主文件夹中创建。如果你想把它存储在其他地方,你可以在创建后移动它。

# install the packages
install.packages("googledrive", "googlesheets4")

# load the libraries
library(googledrive)
library(googlesheets4)


## With local storage
# Locally store the file
write.csv(x = iris, file = "iris.csv")

# Upload the file
drive_upload(media = "iris.csv", type='spreadsheet')


## Direct storage
# Create an empty spreadsheet. It is stored as an object with a sheet_id and drive_id 
ss <- gs4_create(name = "my_spreadsheet", sheets = "Sheet 1")

# Put the data.frame in the spreadsheet and provide the sheet_id so it can be found
sheet_write(data=iris, ss = ss, sheet ="Sheet 1")

# Move your spreadsheet to the desired location
drive_mv(file = ss, path = "my_creations/awesome location/")