【问题标题】:for loop and downloads with multiple urlsfor 循环和具有多个 url 的下载
【发布时间】:2017-02-07 15:47:10
【问题描述】:

嗨,我指的是这里的问题 - Downloading multiple files using "download.file" function in R

但我找不到我正在寻找的答案。我想从多个 url 下载数据,我正在使用以下代码:

我正在尝试做类似的事情,并且在 R 中相对较新。下面是我的代码:

temp <- tempfile(pattern = "my", fileext = ".txt")    #my is a vector in YYMM form

masterfile = as.data.frame(NULL)

for(i in 1:length(my)) {

  download.file(url = paste0("http://www2.census.gov/econ/bps/Metro/ma", "my[i]", "c.txt"), destfile = paste0("/Users/shashankrai/GitHub/data-science/homeworks/homework1/","my[i]","c.txt"), mode = wb)

temp <- read.table(paste0("/Users/shashankrai/GitHub/data-science/homeworks/homework1/","my[i]","c.txt"), sep = ",", skip = 3)[, c(1,3,5)]

masterfile <- rbind(masterfile, temp)

}

它抛出以下错误:

curl:(3) [globbing] 第 44 列中的错误范围

文件中的错误(文件,“rt”):无法打开连接

另外:警告信息:

1: 在download.file(url = paste0("http://www2.census.gov/econ/bps/Metro/ma", : 下载有 非零退出状态

2:在文件中(文件,“rt”):无法打开文件 '/Users/shashankrai/GitHub/data-science/homeworks/homework1/my[i]c.txt': 没有这样的文件或目录

你能告诉我我做错了什么吗?

我也试过这个:

temp <- tempfile(pattern = "my", fileext = ".txt")

masterfile = as.data.frame(NULL)

for(i in 1:length(my)) {

  download.file(url = paste0("url", "my[i]", "c.txt"), destfile = my[i], mode = wb)

  temp <- read.table(my[i], sep = ",", skip = 3)[, c(1,3,5)]

  masterfile <- rbind(masterfile, temp)

}

【问题讨论】:

  • "my[i]" 应该是my[i]
  • 谢谢迈克尔。是的,我注意到了。 :)

标签: r url download


【解决方案1】:

没关系。弄清楚了。这是一个终于奏效的代码:

masterfile = as.data.frame(NULL)

for(i in 1:length(my)) {

  temp <- tempfile(pattern = "my", fileext = ".txt")

  download.file(url = paste0("http://www2.census.gov/econ/bps/Metro/ma",     my[i], "c.txt"), destfile = temp[i], mode = wb)

  masterfile <- rbind(masterfile, read.table(file = temp[i], sep = ",", skip = 3)[, c(1,3,5)])

}

【讨论】:

    猜你喜欢
    • 2020-12-03
    • 2021-05-14
    • 1970-01-01
    • 2023-01-29
    • 2023-02-08
    • 2020-08-21
    • 2018-03-28
    • 2016-08-27
    • 2020-09-13
    相关资源
    最近更新 更多