1

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

所以我使用了以下

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

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

中的originScen[,1]每个条目都可以有重复的条目reducedScenarioIds

有人有替代解决方案吗?

谢谢

4

1 回答 1

2

试试这个:

reducedSet <- originScen[originScen[,1] %in% reducedScenarioIds,][order(na.exclude(match(originScen[,1], reducedScenarioIds))),]
于 2013-07-03T15:16:09.853 回答