[R] find the permutation function of a sorting

David Winsemius dw|n@em|u@ @end|ng |rom comc@@t@net
Wed May 23 06:02:17 CEST 2018



> On May 22, 2018, at 11:37 PM, John <miaojpm using gmail.com> 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").

So you want:

> x <- sort(c("bc","ac","dd"), index.return=TRUE)
> x
$x
[1] "ac" "bc" "dd"

$ix
[1] 2 1 3

>  c("D","E", "F")[ x$ix ]
[1] "E" "D" "F"


> 
> 2018-05-23 11:06 GMT+08:00 David Winsemius <dwinsemius using comcast.net>:
> 
> 
> > On May 22, 2018, at 10:57 PM, John <miaojpm using 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,
> > 
> > 
> > > x <- c(10,7,4,3,8,2)
> > > 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 using comcast.net>:
> > 
> > 
> > > On May 22, 2018, at 10:06 PM, John <miaojpm using gmail.com> wrote:
> > > 
> > > Hi,
> > > 
> > >   Is there any way to find the permutation function of the sorting and to
> > > apply the function (or its inverse) elsewhere?
> > > 
> > >   For example, the following permutation function from the sorting in the
> > > matrix form is
> > > c(1,2,3), c(2,1,3)
> > > 
> > >> sort(c("bc","ac","dd"))
> > > [1] "ac" "bc" "dd"
> > > 
> > 
> > I think you are asking for the `order` function.
> > 
> > >   I try to find it in the permutations/permute package, but I can't find it
> > > 
> > > John
> > > 
> > >       [[alternative HTML version deleted]]
> > 
> > 
> 
> 




More information about the R-help mailing list