[R] looping through numbered variables

David Winsemius dwinsemius at comcast.net
Mon Aug 27 18:52:39 CEST 2012


On Aug 27, 2012, at 7:11 AM, Daniel Caro wrote:

> Hello,
>
> This is a beginner question.

You should read the Posting Guide. (As well as following Bert's  
suggestion to work through "Intro to R".

> I am trying to loop through numbered
> variables with "apply" to calculate weighted means. My data is "data",
> the variables are "var1" to "var100", the weight is "weight". The
> command works using
>
> sapply(paste('data$var', 1:100, sep=''), function(x)
> weighted.mean(eval(parse(text=x)), data$weight))
>
> but is there a way to avoid eval(parse())?

I'm guessing you want:

library( <some package which was not named> )
lapply(data, function(x) weighted_mean(x, data$weight))

(I'm was guessing that weighted_mean was from the Hmisc package (but  
its similar function has a different name), but at any rate, it is  
better practice to indicate what package holds non-core functions. I  
also think it is better practice to use named arguments in function  
calls and to not use teh name "data" for objects, since it is also a  
function name.)

?data


-- 
David Winsemius, MD
Alameda, CA, USA




More information about the R-help mailing list