说一个尺寸相同的矩阵列表(超过1000个矩阵,每个矩阵具有相同的行和列),但为简单起见,示例列表的长度为3。例如,列表a:
a <- list(A=matrix(c(1:6),2,3),
B=matrix(c(2:7),2,3),
C=matrix(c(3:8),2,3))
> a
$A
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
$B
[,1] [,2] [,3]
[1,] 2 4 6
[2,] 3 5 7
$C
[,1] [,2] [,3]
[1,] 3 5 7
[2,] 4 6 8
我想生成一个汇总矩阵M。M具有与a中的每个矩阵相同的暗角。 M中的每个元素都是一个数字,该数字在列表中每个矩阵的相同位置计数,其中有多少个数字大于特定值g_value
。
例如,如果g_value = 2
等于M[1,1]
,则1
等于C[1,1]
,因为A[1,1], B[1,1], C[1,1]
中只有M
> 2。
因此,> M
[,1] [,2] [,3]
[1,] 1 3 3
[2,] 2 3 3
应该是如下矩阵:
TURE
使用循环将列表中的值更改为FALSE
和> b <- list()
> for(i in 1:length(a)){
+ b[[i]] = a[[i]] > 2
+ }
> b
[[1]]
[,1] [,2] [,3]
[1,] FALSE TRUE TRUE
[2,] FALSE TRUE TRUE
[[2]]
[,1] [,2] [,3]
[1,] FALSE TRUE TRUE
[2,] TRUE TRUE TRUE
[[3]]
[,1] [,2] [,3]
[1,] TRUE TRUE TRUE
[2,] TRUE TRUE TRUE
之后,我再也做不了了。有人可以帮我吗?预先感谢。
{{1}}
答案 0 :(得分:2)
尝试以下操作:
a <- list(A = matrix(1:6, 2, 3),
B = matrix(2:7, 2, 3),
C = matrix(3:8, 2, 3))
Reduce("+", lapply(a, function (x) x > 2))