Complicated For Loop (to me)
Since you did not follow the posting and provide data, here is a way that you can split by race & region and perform operations on each subset of the data frame:
# test data
n <- 4500
x <- data.frame(race=sample(c('a','b','c'), n, TRUE),
+ region=sample(1:9, n, TRUE), values=runif(n))
# split into race & region x.s <- split(x, list(x$race, x$region), drop=TRUE) # average for each subset sapply(x.s, function(.df) mean(.df$values))
a.1 b.1 c.1 a.2 b.2 c.2 a.3
b.3 c.3 a.4
0.4832214 0.4792623 0.4846138 0.5098792 0.4997666 0.5212905 0.5068535
0.5140438 0.5580490 0.4849455
b.4 c.4 a.5 b.5 c.5 a.6 b.6
c.6 a.7 b.7
0.4952947 0.4639553 0.4798192 0.5030650 0.4889465 0.4839610 0.5080325
0.5176548 0.4788206 0.5300395
c.7 a.8 b.8 c.8 a.9 b.9 c.9
0.4799252 0.4871341 0.4675535 0.4899783 0.5172642 0.4968789 0.5499326
On Mon, Nov 9, 2009 at 3:18 PM, agm. <amurray at vt.edu> wrote:
I've looked through ?split and run all of the code, but I am not sure that I
can use it in such a way to make it do what I need. ?Another suggestion was
using "lists", but again, I am sure that the process can do what I need, but
I am not sure it would work with so many observations.
I might have been too simple in my code. ?Let me try to explain it more
clearly:
I've got a data set of 4500 observations. ?I have already subset it into
race/ethnicity (which I did by simple code). ?Now I needed to subset each
race/ethnicity again into 9 separate regions. ?I again did this by simple
code.
The problem is now, I need to calculate a percentage for three different
variables for all 9 regions for each race. ?I was trying to do this through
a loop command.
So a snippet of my code is :
names <- c("white", "black", "asian", "hispanic")
for(j in 1:length(names)){
for(i in 1:9){
names[j].cd[i].es.wash <- subset(names[j].cd[i], SLUNCH==1)
es.cd[i].names.w <-
sum(names.cd[i].es.wash$NWEIGHT)/sum(names.cd[i]$NWEIGHT)
}
}
Maybe that makes it clearer. ?If not, I apologize. ?Thanks for the help that
I have already received. ?It is greatly appreciated.
Tony
--
View this message in context: http://old.nabble.com/Complicated-For-Loop-%28to-me%29-tp26269479p26272994.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at r-project.org 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.
Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve?