[R] sort a data matrix by all the values and keep the names
Steven McKinney
smckinney at bccrc.ca
Tue Sep 23 03:02:24 CEST 2008
Is something missing in the melt()?
> x<-data.frame(x1=c(1,7),x2=c(4,6),x3=c(8,2))
> require("reshape")
Loading required package: reshape
> dfm <- melt(x, id = c())
Error in if (!missing(id.var) && !(id.var %in% varnames)) { :
missing value where TRUE/FALSE needed
> dfm[order(dfm$value), ]
Error: object "dfm" not found
> x
x1 x2 x3
1 1 4 8
2 7 6 2
> melt(x, id = c())
Error in if (!missing(id.var) && !(id.var %in% varnames)) { :
missing value where TRUE/FALSE needed
>
Steve McKinney
-----Original Message-----
From: r-help-bounces at r-project.org on behalf of hadley wickham
Sent: Mon 9/22/2008 5:47 PM
To: zhihuali
Cc: r-help at stat.math.ethz.ch
Subject: Re: [R] sort a data matrix by all the values and keep the names
On Mon, Sep 22, 2008 at 6:54 PM, zhihuali <lzhtom at hotmail.com> wrote:
>
> Dear all,
>
> If I have a data frame x<-data.frame(x1=c(1,7),x2=c(4,6),x3=c(8,2)):
> x1 x2 x3
> 1 4 8
> 7 6 2
>
> I want to sort the whole data and get this:
> x1 1
> x3 2
> x2 4
> x2 6
> x1 7
> x3 8
>
> If I do sort(X), R reports:
> Error in order(list(x1 = c(1, 7), x2 = c(4, 6), x3 = c(8, 2)), decreasing = FALSE) :
> unimplemented type 'list' in 'orderVector1'
>
> The only way I can sort all the data is by converting it to a matrix:
>> sort(as.matrix(x))
> [1] 1 2 4 6 7 8
>
> But now I lost all the names attributes.
>
> Is it possible to sort a data frame and keep all the names?
Here's one way:
dfm <- melt(x, id = c())
dfm[order(dfm$value), ]
Hadley
--
http://had.co.nz/
______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list