Как загрузить фрейм данных R на диск Google?

Я использую пакет googledrive от CRAN. Но функция - drive_upload позволяет загружать локальный файл, а не фрейм данных. Кто-нибудь может помочь с этим?

4 ответа

К сожалению, я не могу найти способ напрямую поднять фрейм данных, но просто документировать для других, пытающихся получить базовые знания, которые затрагивает этот вопрос, с помощью следующего кода, который записывает локальный.csv, а затем перебирает его через tidyverse::googledrive чтобы выразить себя как googlesheet.

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

Вы можете добиться этого с помощью gs_add_row из пакета googlesheets. Этот API принимает фреймы данных непосредственно в качестве входного параметра и загружает данные в указанный лист Google. Локальные файлы не требуются.

Из раздела справки? Gs_add_row:

"Если ввод двумерный, внутри мы вызываем gs_add_row один раз для каждой строки ввода".

Просто сохраните рассматриваемый 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)

И теперь у нас в памяти есть файловое соединение, которое мы можем использовать для других функций. Предостережение - используйте буквальное имя объекта для обращения к нему, а не кавычки, как в случае с реальными файлами.

Это можно сделать двумя способами. Как упоминалось другими, можно создать локальный файл и загрузить его. Также можно создать новую электронную таблицу на вашем диске. Эта таблица будет создана в основной папке вашего диска. Если вы хотите, чтобы он хранился в другом месте, вы можете переместить его после создания.

      # 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/")
Другие вопросы по тегам