【问题标题】:Drop column in a list with R使用 R 在列表中删除列
【发布时间】:2014-05-10 11:10:05
【问题描述】:

样本数据:

list.data <- list(matrix(seq(1,30,2),5,3),matrix(seq(1,10,2),5,2))

我想删除列表中矩阵的第一列,但保持前面的列垂直。 (作为 [1:n,1] 矩阵)

这是我尝试过的(以及其他方式):

lapply(list.data, function(x) x[,2:ncol(x)])

但最初的 2 列矩阵不断翻转到水平位置。

我想要的是这样的:

    [[1]]
    [,1] [,2]
[1,]   11   21
[2,]   13   23
[3,]   15   25
[4,]   17   27
[5,]   19   29

    [[2]]
    [,1]
 [1] 1 
 [2] 3 
 [3] 5 
 [4] 7 
 [5] 9

【问题讨论】:

    标签: r list matrix


    【解决方案1】:

    只需将drop = FALSE 添加到您的命令中即可保持维度属性不变。

    > lapply(list.data, function(x) x[,2:ncol(x), drop = FALSE])
    [[1]]
         [,1] [,2]
    [1,]   11   21
    [2,]   13   23
    [3,]   15   25
    [4,]   17   27
    [5,]   19   29
    
    [[2]]
         [,1]
    [1,]    1
    [2,]    3
    [3,]    5
    [4,]    7
    [5,]    9
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-30
      • 1970-01-01
      • 2013-10-15
      • 2022-01-02
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多