wake-up-neo.net

R So lesen Sie eine Datei von Google Drive mit R

Ich möchte in R einen Datensatz von Google Drive als Screenshot anzeigen lassen.

Weder

url <- "https://drive.google.com/file/d/1AiZda_1-2nwrxI8fLD0Y6e5rTg7aocv0"
temp <- tempfile()
download.file(url, temp)
bank <- read.table(unz(temp, "bank-additional.csv"))
unlink(temp)

noch

library(RCurl)
bank_url <- dowload.file(url, "bank-additional.csv", method = 'curl')

funktioniert.

Ich habe viele Stunden daran gearbeitet. Irgendwelche Tipps oder Lösungen wären wirklich dankbar.

6
seven

Versuchen

temp <- tempfile(fileext = ".Zip")
download.file("https://drive.google.com/uc?authuser=0&id=1AiZda_1-2nwrxI8fLD0Y6e5rTg7aocv0&export=download",
  temp)
out <- unzip(temp, exdir = tempdir())
bank <- read.csv(out[14], sep = ";")
str(bank)
# 'data.frame': 4119 obs. of  21 variables:
 # $ age           : int  30 39 25 38 47 32 32 41 31 35 ...
 # $ job           : Factor w/ 12 levels "admin.","blue-collar",..: 2 8 8 8 1 8 1 3 8 2 ...
 # $ marital       : Factor w/ 4 levels "divorced","married",..: 2 3 2 2 2 3 3 2 1 2 ...
 # <snip>

Die URL sollte mit der URL übereinstimmen, die Sie zum Herunterladen der Datei mit Ihrem Browser verwenden.

Wie @ Mako212 betont, können Sie auch das Paket googledrive verwenden und drive_download durch download.file ersetzen:

library(googledrive)
temp <- tempfile(fileext = ".Zip")
dl <- drive_download(
  as_id("1AiZda_1-2nwrxI8fLD0Y6e5rTg7aocv0"), path = temp, overwrite = TRUE)
out <- unzip(temp, exdir = tempdir())
bank <- read.csv(out[14], sep = ";")
5
Weihuang Wong
  • Der Google Drive Share-Link ist nicht der direkte Dateilink. 1. download.file2. RCurlfirst method in accepted answer lädt nur die Webseite herunter, auf der die Datei angezeigt wird, nicht die Datei selbst. Sie können die heruntergeladene Datei bearbeiten und sehen, dass es sich um eine HTML-Datei handelt.

  • Mit this können Sie den tatsächlichen direkten Link zur Datei herausfinden. Mit dem direkten Link funktionieren alle regulären Download-Methoden.

  • Für sehr detaillierte Diskussionen über das Erhalten des direkten Links oder das Herunterladen siehe diese Frage .

  • Für die Google Drive API muss sich der Client anmelden. Daher werden Sie im googledrive-Paket auch aufgefordert, sich bei Google anzumelden, sofern Sie noch nicht angemeldet sind.

0
dracodoc