如何添加通过对R中的三个列表进行操作而生成的矩阵?

如何添加通过对R中的三个列表进行操作而生成的矩阵?,r,R,我目前有三个列表List.1、List.2和List.3,每个列表包含500个矩阵,每个矩阵都有维度100 x 100。因此,List.1[[1]]是一个维度矩阵100x100 我想做的操作是查看列表中给定矩阵的哪些元素。2位于相应矩阵和列表中的元素之间。1和列表。3。对于3个列表中的一个矩阵,操作如下所示: +(List.2[[1]] < List.3[[1]] & List.2[[1]] > List.1[[1]]) 这显然不是最理想的方法。任何想法都将不胜感激。谢谢

我目前有三个列表
List.1
List.2
List.3
,每个列表包含500个矩阵,每个矩阵都有维度
100 x 100
。因此,
List.1[[1]]
是一个维度矩阵
100x100

我想做的操作是查看
列表中给定矩阵的哪些元素。2
位于相应矩阵和
列表中的元素之间。1
列表。3
。对于3个列表中的一个矩阵,操作如下所示:

+(List.2[[1]] < List.3[[1]] & List.2[[1]] > List.1[[1]])
这显然不是最理想的方法。任何想法都将不胜感激。谢谢

list.1
list.1 <- list()
list.2 <- list()
list.3 <- list()

N=5
list.1[[1]] <- matrix(1,nrow=N, ncol=N)
list.2[[1]] <- matrix(2,nrow=N, ncol=N)
list.3[[1]] <- matrix(3,nrow=N, ncol=N)
list.1[[2]] <- matrix(-1,nrow=N, ncol=N)
list.2[[2]] <- matrix(-2,nrow=N, ncol=N)
list.3[[2]] <- matrix(-3,nrow=N, ncol=N)
list.1[[3]] <- matrix(rnorm(N*N),nrow=N, ncol=N)
list.2[[3]] <- matrix(rnorm(N*N),nrow=N, ncol=N)
list.3[[3]] <- matrix(rnorm(N*N),nrow=N, ncol=N)



list.result <- lapply(1:length(list.1), FUN=function(i){list.2[[i]] < list.3[[i]] & list.2[[i]] > list.1[[i]]})
# [[1]]
# [,1] [,2] [,3] [,4] [,5]
# [1,] TRUE TRUE TRUE TRUE TRUE
# [2,] TRUE TRUE TRUE TRUE TRUE
# [3,] TRUE TRUE TRUE TRUE TRUE
# [4,] TRUE TRUE TRUE TRUE TRUE
# [5,] TRUE TRUE TRUE TRUE TRUE
# 
# [[2]]
# [,1]  [,2]  [,3]  [,4]  [,5]
# [1,] FALSE FALSE FALSE FALSE FALSE
# [2,] FALSE FALSE FALSE FALSE FALSE
# [3,] FALSE FALSE FALSE FALSE FALSE
# [4,] FALSE FALSE FALSE FALSE FALSE
# [5,] FALSE FALSE FALSE FALSE FALSE
# 
# [[3]]
# [,1]  [,2]  [,3]  [,4]  [,5]
# [1,] FALSE FALSE FALSE  TRUE FALSE
# [2,] FALSE FALSE FALSE FALSE FALSE
# [3,] FALSE FALSE FALSE FALSE FALSE
# [4,] FALSE  TRUE FALSE FALSE FALSE
# [5,] FALSE FALSE FALSE  TRUE  TRUE


# If you need to fund the sum of all of them, then you can add Reduce:
Reduce("+",lapply(1:length(list.1), 
                  FUN=function(i){
                    list.2[[i]] < list.3[[i]] & 
                    list.2[[i]] > list.1[[i]]}))
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    1    1    1    2    1
# [2,]    1    1    1    1    1
# [3,]    1    1    1    1    1
# [4,]    1    2    1    1    1
# [5,]    1    1    1    2    2
list.1 <- list()
list.2 <- list()
list.3 <- list()

N=5
list.1[[1]] <- matrix(1,nrow=N, ncol=N)
list.2[[1]] <- matrix(2,nrow=N, ncol=N)
list.3[[1]] <- matrix(3,nrow=N, ncol=N)
list.1[[2]] <- matrix(-1,nrow=N, ncol=N)
list.2[[2]] <- matrix(-2,nrow=N, ncol=N)
list.3[[2]] <- matrix(-3,nrow=N, ncol=N)
list.1[[3]] <- matrix(rnorm(N*N),nrow=N, ncol=N)
list.2[[3]] <- matrix(rnorm(N*N),nrow=N, ncol=N)
list.3[[3]] <- matrix(rnorm(N*N),nrow=N, ncol=N)



list.result <- lapply(1:length(list.1), FUN=function(i){list.2[[i]] < list.3[[i]] & list.2[[i]] > list.1[[i]]})
# [[1]]
# [,1] [,2] [,3] [,4] [,5]
# [1,] TRUE TRUE TRUE TRUE TRUE
# [2,] TRUE TRUE TRUE TRUE TRUE
# [3,] TRUE TRUE TRUE TRUE TRUE
# [4,] TRUE TRUE TRUE TRUE TRUE
# [5,] TRUE TRUE TRUE TRUE TRUE
# 
# [[2]]
# [,1]  [,2]  [,3]  [,4]  [,5]
# [1,] FALSE FALSE FALSE FALSE FALSE
# [2,] FALSE FALSE FALSE FALSE FALSE
# [3,] FALSE FALSE FALSE FALSE FALSE
# [4,] FALSE FALSE FALSE FALSE FALSE
# [5,] FALSE FALSE FALSE FALSE FALSE
# 
# [[3]]
# [,1]  [,2]  [,3]  [,4]  [,5]
# [1,] FALSE FALSE FALSE  TRUE FALSE
# [2,] FALSE FALSE FALSE FALSE FALSE
# [3,] FALSE FALSE FALSE FALSE FALSE
# [4,] FALSE  TRUE FALSE FALSE FALSE
# [5,] FALSE FALSE FALSE  TRUE  TRUE


# If you need to fund the sum of all of them, then you can add Reduce:
Reduce("+",lapply(1:length(list.1), 
                  FUN=function(i){
                    list.2[[i]] < list.3[[i]] & 
                    list.2[[i]] > list.1[[i]]}))
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    1    1    1    2    1
# [2,]    1    1    1    1    1
# [3,]    1    1    1    1    1
# [4,]    1    2    1    1    1
# [5,]    1    1    1    2    2