【问题标题】:Keeping only some rows of a matrix using one column as choice-maker in R在 R 中使用一列作为选择器仅保留矩阵的某些行
【发布时间】:2015-02-11 02:00:38
【问题描述】:

我在 R 中有一个矩阵,我想根据一列只保留其中的一些行。例如,如果我有此处显示的矩阵 A

1 2 5 6 8 
1 3 4 5 7
8 8 6 7 7
9 8 8 5 4
0 2 3 4 5

我希望能够只保留 A 的最后一列是 7 或 4 的行,即获得一个矩阵 B :

1 3 4 5 7
8 8 6 7 7
9 8 8 5 4

我怎样才能有效地做到这一点?

谢谢!

【问题讨论】:

    标签: r matrix selection rows


    【解决方案1】:

    您可以将%in% 用于多个值

     A[A[,ncol(A)] %in% c(7,4),]
     #     [,1] [,2] [,3] [,4] [,5]
     #[1,]    1    3    4    5    7
     #[2,]    8    8    6    7    7
     #[3,]    9    8    8    5    4
    

    或者,如果我们使用“data.frame”,可以将其转换为“data.table”(setDT),将相关列设置为“key”(setkey)并将数据集设置为子集。

     library(data.table)
     setkey(setDT(as.data.frame(A)), V5)[J(c(7,4))]
     #   V1 V2 V3 V4 V5
     #1:  1  3  4  5  7
     #2:  8  8  6  7  7
     #3:  9  8  8  5  4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-17
      相关资源
      最近更新 更多