【发布时间】:2016-03-03 03:02:15
【问题描述】:
您好,我正在尝试跟踪排序表中某些元素的初始顺序。这是一个小玩具示例:
initialTable=data.frame(
key=runif(30, min=0, max=10000),
category=as.integer(runif(30, min=0, max=3))
)
然后我们根据key在排好序的表中得到行的顺序:
lineOrder=order(initialTable$key)
还有排序的决赛桌:
finalTable=initialTable[lineOrder,]
我们对这些元素感兴趣,并希望在新表中跟踪它们的索引:
listOfIndexOfInterest=which(initialTable$category==1)
所以现在我是如何管理它的:
listOfNewPosition=c()
for(i in listOfIndexOfInterest){
listOfNewPosition=c(listOfNewPosition,which(lineOrder==i))
}
最后的目标是为这两个命令提供相同的输出:
initialTable[listOfIndexOfInterest,]
finalTable[listOfNewPosition,]
当然我可以告诉你更多关于原因的信息,但为了简单起见,很多大表都以相同的方式排序,我只想按给定的顺序构建一次感兴趣的元素列表!
【问题讨论】: