Как загрузить фрейм данных 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/")