【发布时间】:2014-11-06 21:51:54
【问题描述】:
我的数据集包含多个列,其中有 6 个称为 ID1、ID2、ID3、ID13、ID23、ID33,其中包含多个 ID。我的目标是检查哪些行包含某些值(在这种情况下,值以 531 或 532 或 533 或 534 开头)并将它们子集到一个新数据集中。
此代码对其中任何列中的 ID 正好为 531 的所有行的数据进行了子集化,但我不知道如何制作它,因此它只检查以 531 开头的值,以及如何制作它检查所有 4 个起始值:531、532、533 和 534(不使用更多条件语句)
ID <- data[which(data$ID1 == '531' | data$ID2 == '531' | data$ID3 == '531' | data$ID13 == '531' | data$ID23 == '531' | data$ID33 == '531'), ]
我基本上是在寻找一种更简单的方法来做到这一点。
这是示例数据和我想要的输出:
Sample Data
ID1 ID2 ID3 ID13 ID23 ID33
43645 38894 37338 45617 54419 42716
53123 24277 5323 29160
22821 26091 46100 65324 22179 12367
47946 59421
1954 9544
63534 53244 4771
59080 32532 41460 34562 15722
30542 11477 13211 11739 26753
29331 5311 7079 534424 5322
Desired Output
ID1 ID2 ID3 ID13 ID23 ID33
53123 24277 5323 29160
63534 53244 4771
29331 5311 7079 534424 5322
我为格式道歉(确实缺少一些数据点)
谢谢
【问题讨论】:
-
您想要一个数据集,其中仅包含所有三列或至少一列中具有这些值之一的那些行?我想我会使用
grepl。 -
建议包含样本数据和所需的输出。
标签: r