使用lapply函数修改R中的几个矩阵

sqyvllje  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(76)

我想删除一列(F.E.列3)从存储在列表中的几个矩阵。
我可以不定义函数吗?
这是使用自己的函数的方法:

m1 <- matrix(1:9, nrow = 3, ncol = 3)
m2 <- matrix(1:9, nrow = 3, ncol = 3)
m3 <- matrix(1:9, nrow = 3, ncol = 3)
m_ls <- list(m1,m2,m3)

del <- function(mat){
  mat <- mat[,-3]
  return(mat)
}

lapply(m_ls, del)
mgdq6dx1

mgdq6dx11#

你可以使用[作为一个函数:

m1 <- m2 <- m3 <- matrix(1:9, nrow = 3, ncol = 3)
m_ls <- list(m1,m2,m3)

lapply(m_ls, `[`, , -3)
#> [[1]]
#>      [,1] [,2]
#> [1,]    1    4
#> [2,]    2    5
#> [3,]    3    6
#> 
#> [[2]]
#>      [,1] [,2]
#> [1,]    1    4
#> [2,]    2    5
#> [3,]    3    6
#> 
#> [[3]]
#>      [,1] [,2]
#> [1,]    1    4
#> [2,]    2    5
#> [3,]    3    6

创建于2023-06-04使用reprex v2.0.2

相关问题