2013-03-17 81 views
1

所以我有一個矢量恢復矢量/矩陣的原始順序在r中

> A<-c(19:30,1:5,6,100:80) 

然後我用

> A<-sort(A,index.return=T) 
> valueA<-A$x 
> indexA<-A$ix 

排序的矢量,並得到一個矢量指出的值。然後,我對valueA進行了一些算術運算,它需要先對它進行排序,現在我想按照A最初所在的順序(它保存在向量indexA中)放置新值。

這是一回事嗎?某種「恢復」或「解除排序」或其他?我試過四處尋找,看起來有些東西很接近,但要麼不對,要麼我不理解。

謝謝。

回答

5

您希望base功能order

ord <- order(A) 
A <- A[ord] #same as sort(A) 
#do stuff, then revert 
A <- A[order(ord)] 
+0

我花了一下'-1 * ord + max(ord)+ 1',現在我覺得很笨。謝謝米) – Jemus42 2017-05-22 05:28:24