gpt4 book ai didi

r - 添加多个列表

转载 作者:行者123 更新时间:2023-12-01 13:48:13 24 4
gpt4 key购买 nike

我将研究结果存储在列表中。

我总共有 1000 个列表,所有列表都是相同的维度。

每个列表包含 39 个元素,它们是不同维度的矩阵。

我想对这些列表求和,然后除以 1000。

我想不出一个办法来做到这一点。

例子:

a<-matrix(0,nrow=5,ncol=6)
b<-matrix(0,nrow=2,ncol=10)

list1 <- list(a,b)

a<-matrix(0,nrow=5,ncol=6)
b<-matrix(0,nrow=2,ncol=10)

list2 <- list(a,b)

a<-matrix(0,nrow=5,ncol=6)
b<-matrix(0,nrow=2,ncol=10)

list3 <- list(a,b)

我想添加 list1 + list2 + list3...list1000

然后将最终列表中的每个元素除以 1000。

最佳答案

您可以结合使用 MapReduce 并使用 mget 将所有列表收集到一个列表中。

a<-matrix(1,nrow=5,ncol=6)
b<-matrix(10,nrow=2,ncol=10)

list1 <- list(a,b)
list2 <- list(a,b)
list3 <- list(a,b)

l <- mget(ls(pattern = '^list\\d+$'))
(fl <- Reduce(function(x, y) Map(`+`, x, y), l))

# [[1]]
# [,1] [,2] [,3] [,4] [,5] [,6]
# [1,] 3 3 3 3 3 3
# [2,] 3 3 3 3 3 3
# [3,] 3 3 3 3 3 3
# [4,] 3 3 3 3 3 3
# [5,] 3 3 3 3 3 3
#
# [[2]]
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,] 30 30 30 30 30 30 30 30 30 30
# [2,] 30 30 30 30 30 30 30 30 30 30

Map(`/`, fl, 1000)

# [[1]]
# [,1] [,2] [,3] [,4] [,5] [,6]
# [1,] 0.003 0.003 0.003 0.003 0.003 0.003
# [2,] 0.003 0.003 0.003 0.003 0.003 0.003
# [3,] 0.003 0.003 0.003 0.003 0.003 0.003
# [4,] 0.003 0.003 0.003 0.003 0.003 0.003
# [5,] 0.003 0.003 0.003 0.003 0.003 0.003
#
# [[2]]
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,] 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
# [2,] 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03

关于r - 添加多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34134183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com