[R] unquoting

Gabor Grothendieck ggrothendieck at gmail.com
Sun Aug 20 13:16:46 CEST 2006


Try these

   get(names(AF)[2])
   AF["Second"] # this one different than the rest
   AF[["Second"]]
   AF[, "Second"]
   AF$Second


On 8/20/06, Murray Jorgensen <maj at waikato.ac.nz> wrote:
> I would like a function to strip quotes off character strings. I should
> work like this:
>
>  > A <- matrix(1:6, nrow = 2, ncol=3)
>  > AF <- as.data.frame(A)
>  > names(AF) <- c("First","Second","Third")
>  > AF
>   First Second Third
> 1     1      3     5
> 2     2      4     6
>  > names(AF)[2]
> [1] "Second"
>  > attach(AF)
>  > unquote(names(AF)[2])
> [1] 3 4
>
> Of course what I actually get is
>
> Error: couldn't find function "unquote"
>
> The reason that I want to do this is that I have a frame with a rather
> large number of variables and I would like to loop over the names and
> print out various descriptive summaries of the variable's distribution.
>
> OK, OK, I could just go
>
>  > AF[,2]
> [1] 3 4
>
> but once I thought of unquoting I have some sort of inner need to know
> how to do it!

Try:

sapply(names(AF), function(nm) mean(AF[nm]))

# same as previous but names a bit nicer

sapply(names(AF), function(nm) mean(AF[nm]), USE.NAMES = FALSE)

sapply(AF, mean)

colMeans(AF)

>
> Cheers,
>
> Murray
> --
> Dr Murray Jorgensen      http://www.stats.waikato.ac.nz/Staff/maj.html
> Department of Statistics, University of Waikato, Hamilton, New Zealand
> Email: maj at waikato.ac.nz                                Fax 7 838 4155
> Phone  +64 7 838 4773 wk    Home +64 7 825 0441    Mobile 021 1395 862
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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