顺序函数:给定向量和有序向量的顺序,我如何获得原始向量?

时间:2018-03-18 15:14:22

标签: r

考虑一个向量x

set.seed(123)
x <- rnorm(100)

我们可以获得x和订购x的订单:

y <- order(x)
z <- x[y]

如果我只知道yz,我怎样才能获得原始x

2 个答案:

答案 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)