Hello,
Like David said, what you are trying to do with sort() can be done with
order() in a much easier way.
First, your code
x <- sort(c("bc","ac","dd"), index.return=TRUE)
Now, with function order()
i <- order(c("bc", "ac", "dd"))
y <- c("D","E", "F")[i]
y
#[1] "E" "D" "F"
# This will give you the inverse,
# just apply order() to the output of order(),
# function order() is its own inverse
y[ order(i) ]
#[1] "D" "E" "F"
Finally, compare the results and see that they are exactly the same.
identical(x$ix, i)
#[1] TRUE
Hope this helps,
Rui Barradas
On 5/23/2018 4:37 AM, John wrote:
sort(c("bc","ac","dd"), index.return=TRUE)
$x
[1] "ac" "bc" "dd"
$ix
[1] 2 1 3
We have the permutation, namely 1-->2, 2-->1, 3-->3.
How can I apply the permutation function to a new set
c("D","E", "F")?
so that the result is
c("E","D", "F").
2018-05-23 11:06 GMT+08:00 David Winsemius <dwinsemius at comcast.net>:
On May 22, 2018, at 10:57 PM, John <miaojpm at gmail.com> wrote:
Thanks, David.
I got the answer from the web.
Is there any easy way to permute a set (e.g., a set of characters) by
the permutation it returns? Thanks,
sort(x, index.return=TRUE)
$x
[1] 2 3 4 7 8 10
$ix
[1] 6 4 3 2 5 1
I don't understand what is being requested. The $ix value is the same as
the one returned `by order`.
David.
2018-05-23 10:49 GMT+08:00 David Winsemius <dwinsemius at comcast.net>:
On May 22, 2018, at 10:06 PM, John <miaojpm at gmail.com> wrote:
Hi,
Is there any way to find the permutation function of the sorting and
apply the function (or its inverse) elsewhere?
For example, the following permutation function from the sorting in
c(1,2,3), c(2,1,3)
sort(c("bc","ac","dd"))
I think you are asking for the `order` function.
I try to find it in the permutations/permute package, but I can't
John
[[alternative HTML version deleted]]
[[alternative HTML version deleted]]