【问题标题】:R - How to choose rows based on values in columnR - 如何根据列中的值选择行
【发布时间】:2015-12-03 20:57:57
【问题描述】:

我有一个dataframe,data,如下图:

head(data)
      code       x     y        z        new
1   123456       1     2        0     654321 
2   999999       2     3        0     543210
3   000998       3     4        0     887765
4   106813       4     6        0         NA
5   222345       5     6        0     564738
6   106815       6     5        0         NA
7   887765       7     1        1     000998

我正在尝试确保保留链接的数据。例如,如果我通过对数据进行子集化来创建一个新矩阵,以便它只保留带有x < 4 的行:

data2 <- subset(data,x<4)
data2
    Code x y z    new
1 123456 1 2 0 654321
2 999999 2 3 0 543210
3 000998 3 4 0 887765

然后我想添加任何行,其中子集数据 (data2) 中某行的new 值等于原始数据中某行的code 值,如下所示:

data3
    Code x y z    new
1 123456 1 2 0 654321
2 999999 2 3 0 543210
3 000998 3 4 0 887765
4 887765 7 1 1 000998

【问题讨论】:

  • @TheTime 小心,以防您复制 data2 中条件 data$code %in% data2$new 也为真的行

标签: r subset


【解决方案1】:

这不是最漂亮的,但它确实有效

rbind(data2, merge(data, data2[,"new", drop = FALSE], by.x = "code", by.y = "new"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多