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.