使用基数R,我想将 different 函数应用于嵌套列表的每个元素。我知道如何使用
将 same 函数应用于嵌套列表lapply(列表,lapply,函数)。
但是,我正在寻找一种将 different 函数应用于每个元素的优雅方法。下面的代码有效,但我发现使用
function(x)lapply(x,function(x))
很难看,所以我希望有一个更优雅的解决方案。
Data <- list(
Panel1 = list(
DF1 = data.frame(A = rnorm(10), B = rnorm(10)),
DF2 = data.frame(A = rnorm(10), B = rnorm(10))
),
Panel2 = list(
DF1 = data.frame(C = rnorm(10), D = rnorm(10)),
DF2 = data.frame(C = rnorm(10), D = rnorm(10))
)
)
Fns <- list(
function(x) lapply(x, function(x) x[1:5, c("B", "A")]),
function(x) lapply(x, function(x) x[1:5, c("D", "C")])
)
Map(function(a, b) b(a), Data, Fns)
答案 0 :(得分:0)
好的,我想我可以回答自己的问题。这行得通,我认为这与使用基数R一样简单。
Data <- list(
Panel1 = list(
DF1 = data.frame(A = rnorm(10), B = rnorm(10)),
DF2 = data.frame(A = rnorm(10), B = rnorm(10))
),
Panel2 = list(
DF1 = data.frame(C = rnorm(10), D = rnorm(10)),
DF2 = data.frame(C = rnorm(10), D = rnorm(10))
)
)
Fns <- list(
function(x) x[1:5, c("B", "A")],
function(x) x[1:5, c("D", "C")]
)
Map(function(a, b) lapply(a, b), Data, Fns)