R从另一个向量中选择矩阵中的行(匹配,%in)

时间:2013-07-03 15:08:17

标签: r select match

假设我有一个包含6列和100000行的数据帧。我想根据另一个向量originScen(10,000行)中的索引/数字选择矩阵reducedScenIds中的行。我通过检查Y的每个成员的值是否与数据帧X的第1列中的值匹配来选择行。现在第一列可以为Y的每个值具有多个匹配。

所以我使用了下面的

reducedSet <- originScen[which(originScen[,1] %in% reducedScenarioIds),]

我对结果很满意,但which%in%似乎会破坏reducedScenarioIds向量的顺序。最终reducedSet根据reducedScenarioIds向量中找到的ID的升序选择行,而不是完全相同的顺序。

originScen[,1]

中的每个条目都可能有reducedScenarioIds个重复的条目

任何人都有替代解决方案吗?

由于

1 个答案:

答案 0 :(得分:2)

试试这个:

reducedSet <- originScen[originScen[,1] %in% reducedScenarioIds,][order(na.exclude(match(originScen[,1], reducedScenarioIds))),]