R如何使用R从谷歌驱动器中读取文件

时间:2017-12-17 02:40:37

标签: r url dataset

我想在R中读取谷歌驱动器中的数据集 screenshot表示。

无论

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)

,也不

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

作品。

我一直在研究这个问题好几个小时。任何提示或解决方案都会非常感激。

2 个答案:

答案 0 :(得分:6)

尝试

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>

网址应与您用浏览器下载文件的网址相对应。

正如@ Mako212指出的那样,你也可以使用googledrive包,用drive_download代替download.file

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 = ";")

答案 1 :(得分:0)

  • Google驱动器共享链接不是直接文件链接,因此1. download.file 2. RCurl first method in accepted answer仅下载显示文件的网页,而不下载文件本身。您可以编辑下载的文件,然后查看它是html文件。

  • 您可以使用this找出到文件的实际直接链接。通过直接链接,所有常规下载方法都可以使用。

  • 有关获取直接链接或下载链接的非常详细的讨论,请参见this question

  • Google驱动器api要求客户端登录,因此googledrive软件包还会要求您登录google(如果尚未登录)。