考虑一个向量x
:
set.seed(123)
x <- rnorm(100)
我们可以获得x
和订购x
的订单:
y <- order(x)
z <- x[y]
如果我只知道y
和z
,我怎样才能获得原始x
?
答案 0 :(得分:2)
编辑: 旧解决方案(原始问题)是:
set.seed(123)
x <- rnorm(100)
y <- order(x)
z <- x[order(y)]
x2 <- z[y]
identical(x2, x)
由于问题现在将z
声明为:
y <- order(x)
z <- x[y]
答案很明显(如@ Rohit的回答):
x2<-numeric(length(x))
x2[y]<-z
identical(x2, x)
答案 1 :(得分:1)
你最初的做事方式是错误的,因为@ 42说。排序x的正确方法是:
y<-order(x)
z<-x[y]
然后你可以把原来的x作为:
x2<-numeric(length(x))
x2[y]<-z
identical(x2, x)