数据帧基于最后一行中的值

时间:2018-03-20 22:38:13

标签: r dataframe

如何根据最后一行每列中的值对R中的CSV进行子集?

例如,我读了一个名为mnist.csv的CSV文件,其尺寸为400x600。

columns   1 2 3 4 .......... 600
rows:   1
        2
        3
        4
        .
        .
        .
      400 0 0 0 1 1 1 ...3 3 3

我想创建的数据框只包含最后一行中值为0的列和行,以及另一行中值为1的另一个数据框

1 个答案:

答案 0 :(得分:1)

使用示例数据,而不是4而不是0

mtcars[,mtcars[nrow(mtcars),] == 4L,drop=FALSE]

禁止:

  • nrow(mtcars)允许我们为每列的“最后一个”编制索引
  • mtcars[...,]返回一维矩阵,即每列的最后一个值
  • ... == 4L返回logical向量,对应于与
  • 匹配的每列
  • mtcars[,...,drop=FALSE]只进行列子集化; drop=FALSE用于防止在只有一列匹配时将矩阵简化为向量,如mtcars[,mtcars[nrow(mtcars),] == 2L]中的情况。