我正在使用来自CRAN的googledrive软件包。但是,函数-drive_upload允许您上载本地文件而不是数据帧。有人可以帮忙吗?
答案 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/")