[R] Sort or Permutate

Berend Hasselman bhh at xs4all.nl
Tue Sep 11 17:00:12 CEST 2012


On 11-09-2012, at 13:13, Alaios wrote:

> Dear all,
> I am having a struct that contains on the first column file names and on the second column a number which is a "rating" of the file on first column
> 
> A small subset looks like that
> 
> small
>      [,1]                                                                                                                                                                 
> [1,] "/storage/storage0/59Off.Rtable"
> [2,] "/storage/storage0/5912On.Rtable" 
> [3,] "/storage/storage0/5912314ff.Rtable"
>      [,2]               
> [1,] "0.220386301811093"
> [2,] "0.405237035258638"
> [3,] "0.288659374128626"
> 
> 
> I want based on the values of column two to rearrange table elements by keeping though the row elements together.
> For example if I order those in ascending order should look like
> 
> small
>      
> [,1]                                                                                                                                                                 
> [1,] "/storage/storage0/59Off.Rtable"
> [2,] "/storage/storage0/5912314ff.Rtable" 
> [3,] " /storage/storage0/5912On.Rtable"
> 
>      [,2]               
> [1,] "0.220386301811093"
> [2,] "0.288659374128626"
> [3,] "0.405237035258638"
> 
> I have tried with sort, sort.list and order but I have failed .
> I do not quite undestand how one can complete this task in R.
> Could you please spend some time helping me?


Please provide data using dput.
You can do it using order() like this

small <- data.frame(file.name=c(
 "/storage/storage0/59Off.Rtable",
 "/storage/storage0/5912On.Rtable",
 "/storage/storage0/5912314ff.Rtable"), stringsAsFactors=FALSE,
 value=c(
 0.220386301811093,
 0.405237035258638,
 0.288659374128626)
 )

v.index <- order(small[,"value"])
small <- small[v.index,]
small

Berend



More information about the R-help mailing list