我认为我遗漏了一些简单的内容,但我在lapply
中访问列表元素时遇到了问题。
问题:我想要下载和阅读的FTP上有很多文件。所以我需要指定位置,下载并阅读它们。所有我认为可以通过一些列表处理得最好,但我无法真正让它在我的函数中工作。
我希望能够从调用lapply(lst,...)
开始,因为我需要变量名称(a)
和同一功能中的网址,以便下载&轻松命名。
代码示例:
a <- "ftp://user:pass@url_A1"
b <- "ftp://user:pass@url_B1"
c <- "ftp://user:pass@url_C1"
d <- "ftp://user:pass@url_D1"
lst <- list(a, b, c, d)
names(lst) <- c("a", "b", "c", "d")
期望的目标:
print(lst[[1]]), ...., print(lst[[4]])
我尝试了什么:
lapply(lst,
function(x) print(x[[]])
)
# Error!
我的真实代码看起来更像是:
lapply(lst,
function(x) download.file(url = x[[]], # Error!
destfile = paste0(lok, paste0(names(x), ".csv")),
quiet = FALSE)
)
编辑:
我知道x[[]]
会引发错误,这只是为了说明我想要得到的内容。
答案 0 :(得分:1)
未测试:
lapply(names(lst),function(x){
download.file(url = lst[[x]],
destfile = paste0(lok,paste0(x,".csv")),
quiet = FALSE)
}
这应该在lok
被定义的情况下起作用。