[R] access elements of a named list using a factor

Dimitris Rizopoulos d.rizopoulos at erasmusmc.nl
Fri Oct 23 15:42:59 CEST 2009


do you mean:

f <- factor(c("pigs", "pigs", "slugs"))
jj <- list(pigs = 1:10, slugs = 1:3)

jj[levels(f)[1]]
jj[[levels(f)[1]]]


Best,
Dimitris


Robin Hankin wrote:
> Hi
> 
> I have a factor 'f' and a named list 'jj'.
> 
> I want names(jj) to match up with levels(f).
> 
> How do I use levels(f) to access elements of jj?
> 
> 
>  > f <- factor(c("pigs","pigs","slugs"))
>  > f
> [1] pigs  pigs  slugs
> Levels: pigs slugs
>  >
>  > jj <- list(pigs=1:10,slugs=1:3)
> 
> 
> 
> My attempts to produce jj$pigs all give errors:
> 
>  > jj$levels(f)[1]
> Error: attempt to apply non-function
> 
>  > do.call("$",jj,levels(f)[1])
> Error in if (quote) { : argument is not interpretable as logical
> 
>  >  "$"(jj,levels(f)[1])
> Error in jj$levels(f)[1] : invalid subscript type 'language'
> 
> 
> 
> 
> 
> 

-- 
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus University Medical Center

Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014




More information about the R-help mailing list