我有一个嵌套结构,例如:
(实际上,我什至很难构建这种结构的可重复示例)
我正在寻找一种有效的方法,将函数(比如说 toLower)应用于内部数据帧的每个单元格,ofc 应用于父列表的每个元素。
我想我可以嵌套一些 lapply,但我不知道如何引用内部元素以及使用哪个 FUN 作为 lapply 参数本身
如果我理解正确的话,你的结构是这样的:
parent <- list(
a=list(foo=data.frame(first=c(1,2,3), second=c(4,5,6)),
bar=data.frame(first=c(1,2,3), second=c(4,5,6)),
puppy=data.frame(first=c(1,2,3), second=c(4,5,6))
),
b=list(foo=data.frame(first=c(1,2,3), second=c(4,5,6)),
bar=data.frame(first=c(1,2,3), second=c(4,5,6)),
puppy=data.frame(first=c(1,2,3), second=c(4,5,6))
)
)
Run Code Online (Sandbox Code Playgroud)
并且您想要运行 function f,该函数适用于数据帧中的每个标量, over parent,这是正确的吗?
如果是这样,以下函数nested_lapply应该执行此操作:
nested_lapply <- function(data, fun) {
lapply(data, function(sublist) { lapply(sublist, fun) })
}
Run Code Online (Sandbox Code Playgroud)
它可以像这样应用:
nested_lapply(parent, sqrt)
Run Code Online (Sandbox Code Playgroud)