如何在列表的每个元素上应用一个函数?
How can I apply a function on every element of a list?
我将所有文件导入到一个列表中。
library(ncdf4)
list <- list.files(path=".", pattern="*test*", full.names=TRUE)
dat = lapply(list, nc_open)
现在,dat
是一个包含 10 个元素的 large list
。每个元素有 15 个 NetCDF 变量,我只想从中提取一个。
我可以使用这个从每个元素中单独提取变量:
dat1var <- ncvar_get(dat[[1]], "temp")
dat2var <- ncvar_get(dat[[2]], "temp")
..
dat10var <- ncvar_get(dat[[10]], "temp")
我如何使用 lapply 或其他方法执行此操作?
我试过了
lapply(dat, function(x) svar <- ncvar_get(dat[[x]], ncvar))
试试这个小徒弟
library(purrr)
purrr:map(dat,c(i,"temp"))
lapply(dat, ncvar_get, "temp")
您可以链接 lapply
s:
lapply(lapply(list, nc_open), ncvar_get, "temp")
这也是
list %>% lapply(nc_open) %>% lapply(ncvar_get, "temp")
我将所有文件导入到一个列表中。
library(ncdf4)
list <- list.files(path=".", pattern="*test*", full.names=TRUE)
dat = lapply(list, nc_open)
现在,dat
是一个包含 10 个元素的 large list
。每个元素有 15 个 NetCDF 变量,我只想从中提取一个。
我可以使用这个从每个元素中单独提取变量:
dat1var <- ncvar_get(dat[[1]], "temp")
dat2var <- ncvar_get(dat[[2]], "temp")
..
dat10var <- ncvar_get(dat[[10]], "temp")
我如何使用 lapply 或其他方法执行此操作?
我试过了
lapply(dat, function(x) svar <- ncvar_get(dat[[x]], ncvar))
试试这个小徒弟
library(purrr)
purrr:map(dat,c(i,"temp"))
lapply(dat, ncvar_get, "temp")
您可以链接 lapply
s:
lapply(lapply(list, nc_open), ncvar_get, "temp")
这也是
list %>% lapply(nc_open) %>% lapply(ncvar_get, "temp")