[R] unquoting

Prof Brian Ripley ripley at stats.ox.ac.uk
Sun Aug 20 13:32:11 CEST 2006


?get

I really think this has nothing to do with `quoting', rather to do with 
evaluating variables from their names. At first I though you were looking 
for noquote(), which does unquote in the conventional sense.

> noquote(names(AF)[2])
[1] Second
> get(names(AF)[2])
[1] 3 4

On Sun, 20 Aug 2006, Murray Jorgensen 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!
> 
> Cheers,
> 
> Murray
> 

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list