[R] How to retrieve a vector of a data.frame's variable attributes?
David Winsemius
dwinsemius at comcast.net
Sun Apr 17 23:59:39 CEST 2011
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
More information about the R-help
mailing list