From: Berton Gunter <gunter.berton_at_gene.com>

Date: Sat 04 Feb 2006 - 08:53:57 EST

R-help@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 Received on Sat Feb 04 09:09:29 2006

Date: Sat 04 Feb 2006 - 08:53:57 EST

?apply

as in:

answer<-apply(yourframe,2,function(x)x[EXP==1 & DOSE==1])

Note that there are slicker ways to do this call. Note also for that for the particular case of column means, you have a built-in much faster alternative:

answer<-colMeans(yourframe[EXP==1 & DOSE==1,],na.rm=TRUE)

Also note that the == construction may be problematic if EXP or DOSE are not factors, say.

Finally, you need to start reading the R docs to learn about this yourself. "An Introduction to R" is a good place to start.

Oh... and your attempt below will certainly not work. After you read the basic docs, you'll see why not.

- Bert Gunter Genentech Non-Clinical Statistics South San Francisco, CA

> -----Original Message-----

*> From: r-help-bounces@stat.math.ethz.ch
**> [mailto:r-help-bounces@stat.math.ethz.ch] On Behalf Of Kevin Middleton
**> Sent: Friday, February 03, 2006 1:41 PM
**> To: r-help@stat.math.ethz.ch
**> Subject: [R] Using string vectors as for loop arguments
**>
**> Is there a mechanism to interate through a vector of strings? Say I
**> have a data frame of 50 variables (VAR1 to VAR50), each with 100
**> measurements along with some coding factors (EXP and DOSE). I
**> want to
**> calculate the mean of a subset of each of VAR1 to VAR 50 (selecting
**> by EXP and DOSE). Rather than just copy/pasting the same code 50
**> times, I thought of using a for loop to go through a vector of VAR1
**> to VAR50 (VAR.LIST below). Each iteration would be the variable name
**> for which the mean would be calculated.
**>
**> Trying this, I get an error that the argument is not numeric or
**> logical. So I assume that for loops with vectors of strings are
**> disallowed. What I am wondering is whether there a way to mimic this
**> sort of procedure?
**>
**> The code looked something like this:
**>
**> VAR.LIST<-paste(c("VAR"), 1:50, sep="")
**>
**> for (i in VAR.LIST){
**> mean(i[EXP==1 & DOSE==1], na.rm=T)
**> }
**>
**>
**>
**> Thanks
**> Kevin Middleton
**>
**> ______________________________________________
**> R-help@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
*

>

R-help@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 Received on Sat Feb 04 09:09:29 2006

*
This archive was generated by hypermail 2.1.8
: Sat 04 Feb 2006 - 15:51:34 EST
*