首页 > 解决方案 > r中的嵌套lappy

问题描述

所以我有一个函数,它需要 2 个参数来从站点读取 txt 文件。参数是 1 城市名称,第二个是数据类型。我有 2 个列表作为参数传递,它们是城市列表和数据类型列表。我如何使用嵌套的 lapply 从站点读取文件?
我对代码的尝试如下所示:

cities <- c("sydney","brisbane"...)
typedatas <- c("Max", "Avg","Min")

url<- "https:/sitename/datasets/"

read.text <- function(city, typedata){
    c(url,typedata,"/year/",city, ".txt) >%>
    paste0()
    }
finaldata <- lapply(cities, function(x) lapply(typedatas,function(x){read.ts})) %>% set_names(cities)

它创建了一个大列表,但没有完全读取文件。输出如下:

最终数据列表 [10]

我怎样才能让它读取并使用每个城市的数据类型适当地命名数据框。

标签: r

解决方案


如果没有可重复的示例,很难做到这一点,但你可以试试这个:

cities <- c("sydney","brisbane")
typedatas <- c("Max", "Avg","Min")

url<- "https:/sitename/datasets/"

read.text <- function(city, typedata){
  paste0(url,typedata,"/year/",city, ".txt")
}
finaldata <- lapply(cities, function(cty){
  lapply(typedatas,function(ds_type){
    read.text(cty, ds_type)
  })
}) %>% set_names(cities)

请注意,您的read.text函数实际上并不读取文件,而只是创建指向它的超链接,因此您需要添加某种函数来实际读取文件。


推荐阅读