On Apr 17, 2011, at 4:21 PM, Bacou, Melanie wrote:

Hi,

I have a data.frame with 100 variables and I have assigned a "label",
"units" and "category" attribute to each variable. I would like to reorder the variables in the data.frame by the "category" attributes but can't find
a way.


Something like lapply(hh, attr, which="category") might return something potentially useful. You obviously have a test case, but have failed to offer it up. Possibly using order() around that might get all the like category variables together.


For example, the first variable is:

attributes(hh$aez)
$levels
[1] "coastal"  "forest"   "savannah"

$class
[1] "labelled" "factor"

$label
[1] ecological zone
93 Levels: 10 quantiles of welfare  ... year of the interview

$units
[1] class
24 Levels: '05 PPP USD / year cedis / year cedis /year class geo-1 ... years

$category
[1] geography
7 Levels: agriculture demography design expenditure geography ... welfare

I have tried:

hh <- hh[, order(attr(hh, "category")) ]

Did you look at what order(attr(hh, "category")) returns. Since you assigned the attribute to individual columns (which are arranged as a list, you cannot expect the whole object to return anything useable when queried with attr().

hh <- hh[, order(attr(hh[, 1:100], "category"))]

(It would be the same since hh == hh[,1:100] )


hh <- hh[, order(attr(dimnames(hh), "category"))]

dimnames would _not_ have any attributes. And attr can only work on one object at a a time anyway,


but all the right-hand side assignments above return NULL.

Thanks very much for your help with this simple task!

--Mel.



_______________________
Melanie Bacou


David Winsemius, MD
West Hartford, CT

______________________________________________
R-help@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.

Reply via email to