如何使用R从Internet直接下载Excel文件

如何使用R从Internet直接下载Excel文件,r,R,我有一个我想下载的文件的URL,从这里直接读入R。它是Gapminder的一个.xlsx文件。要查找它的Webiste是“” 我试过两件事: url <- "https://www.gapminder.org/data/documentation/gd005/u5mr-by-gapminder.xlsx" download.file(url,destfile="example.xlsx") example <- read_excel("example.xlsx") url示例 及

我有一个我想下载的文件的URL,从这里直接读入R。它是Gapminder的一个.xlsx文件。要查找它的Webiste是“”

我试过两件事:

url <- "https://www.gapminder.org/data/documentation/gd005/u5mr-by-gapminder.xlsx"
download.file(url,destfile="example.xlsx")
example <- read_excel("example.xlsx")
url示例

库(RCurl)

URL尽管有URL,GitHub服务器实际上并不提供文件,除非作为参数传入
raw=true


改用这个URL:

我不认为仅仅按照@James所说的更改URL就足够了,(请注意,有问题的URL将您的浏览器与实际文件一起转发到另一个URL——在您的情况下,它是
https://raw.githubusercontent.com/Gapminder-Indicators/u5mr/master/u5mr-by-gapminder.xlsx

但这不是唯一的问题。您需要使用
mode=“wb”
以二进制格式写入下载的文件,然后才能使用
read\u excel
打开该文件,并指定要打开的工作表

下面是一个工作示例:

库(readxl)
目的文件
#>1名阿布哈兹儿童死亡~abkh u5mr NA NA
#>2阿富汗人~儿童凡人~阿富汗人u5mr 469。469469469469469
#>3 Akrotir~儿童凡人~akr_u5;u5mr NA NA NA NA NA NA
#>4阿尔巴尼亚儿童死亡率~alb u5mr 375。375375375375375
#>5阿尔及利亚儿童凡人~dza u5mr 460。460460460460460
#>6美国~儿童凡人~asm u5mr NA NA NA NA
#>7安道尔儿童死亡率~和u5mr NA
#>8安哥拉儿童凡人~ago u5mr 486。486486486486486
#>9安圭拉儿童凡人~aia u5mr NA NA
#>10安提瓜~凡人之子~atg u5mr 474。470466462458455
#> # ... 还有265行和295个变量:`1806`、`1807`

谢谢。它确实适用于下载文件。但是,它只下载excel文件的第一页。因此,我无法将数据读入R。我需要向您提供的URL添加什么才能访问和下载名为“国家和领土”的文件的第二页?@BenMat整个文件都被下载了
read\u excel
一次只能读取一张工作表。您可以使用
sheet
参数指定哪个工作表。这非常有效,需要注意的是
sheet=2
sheet='countries\u and\u territies'
调用
read\u excel()
> url <- "https://github.com/Gapminder-Indicators/u5mr/blob/master/u5mr-by-gapminder.xlsx"
> download.file(url,destfile="example.xlsx")
trying URL 'https://github.com/Gapminder-Indicators/u5mr/blob/master/u5mr-by-gapminder.xlsx'
Content type 'text/html; charset=utf-8' length unknown
downloaded 61 KB

> example <- read_excel("example.xlsx")
Error: Evaluation error: zip file 'C:\Users\user\Documents\example.xlsx' cannot be opened.
> 
library(RCurl)
URL <- "https://www.gapminder.org/data/documentation/gd005/u5mr-by-gapminder.xlsx"
x <- getURL(URL)
out <- read.csv(textConnection(x))
head(out[1:6])
> library(RCurl)
> URL <- "https://www.gapminder.org/data/documentation/gd005/u5mr-by-gapminder.xlsx"
> x <- getURL(URL)
> out <- read.csv(textConnection(x))
Warning message:
In scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  :
  EOF within quoted string
> head(out[1:6])
Error in `[.data.frame`(out, 1:6) : undefined columns selected