如何为嵌套列表复制函数

How to replicate a function for a nested list

我有一个嵌套列表 (datalist),我想为其重复以下功能。数据列表中有多个数据帧(例如 A-F)。

对嵌套数据框“A”执行以下操作后,我想运行其他嵌套数据框 (B-F):

dat_A_dat<-datalist["A"]
dat_A <- dat_A_dat$"A"[,c(1:4,7)] #note: I have to use $ to access this
dat_A.v <-dat_A[,c(1,2)]
dat_A.b <-dat_A[,3]
dat_A.c <-dat_A[,4]
dat_A.r <-dat_A[,7]

有更简单的方法吗?

非常感谢您的帮助。谢谢大家

不清楚你的数据是什么结构或者你到底想实现什么,但如果你只是问如何编写一个可以应用于列表中每个元素的函数,那么它会是一些东西像下面这样。

注意:您可能需要根据您的数据结构和您想要实现的目标来更改此设置,将来尝试包括一个可重现的示例

my_extraction_function <- function(d_list) {

    dat <- d_list$"A"[,c(1:4,7)] #note: I have to use $ to access this
    dat.v <-dat[,c(1,2)]
    dat.b <-dat[,3]
    dat.c <-dat[,4]
    dat.r <-dat[,7]

    # Return them in whatever format you want
    list(v = dat.v,
         b = dat.b,
         c = dat.c,
         r = dat.r)
}

然后你可以这样做:

my_extraction_function(datalist[["A"]])
my_extraction_function(datalist[["B"]])
... etc.

lapply(datalist, my_extraction_function)