我有几个列表,每个列表包含许多数据框,我想计算每个列表中每个数据框的元素之间的元素中值,即list1
的元素[[1]][1,1]
、list2
的元素[[1]][1,1]
、list3
的元素[[1]][1,1]
之间的元素中值,以此类推。每个数据框都有许多列。但下面是一些只有两列的示例数据:
set.seed(1)
list1 <- list(data.frame(a = sample.int(10, 4), b = sample.int(10, 4)),
data.frame(a = sample.int(10, 4), b = sample.int(10, 4)))
list2 <- list(data.frame(a = sample.int(10, 4), b = sample.int(10, 4)),
data.frame(a = sample.int(10, 4), b = sample.int(10, 4)))
list3 <- list(data.frame(a = sample.int(10, 4), b = sample.int(10, 4)),
data.frame(a = sample.int(10, 4), b = sample.int(10, 4)))
这是预期结果:
[[1]]
a b
7 4
9 9
7 3
4 6
[[2]]
a b
5 7
8 6
2 6
5 2
有什么建议吗?
4条答案
按热度按时间4bbkushb1#
使用
purrr
:在Base R中,假设它们都具有相同的结构:
ckocjqey2#
下面是另一个(基数R)选项:
当然不漂亮,但功能齐全。
相关的
dplyr
选项:9avjhtql3#
当然不是最有效的解决方案,但
tidyverse
的一个选项可能是:如果目标是返回列表:
y3bcpkx14#
下面是
tidyverse
解决方案的初稿(我相信它还可以改进):