Hi Josh, Here is one way:
with(x, aggregate(x[,-3], list(factor.level), mean, na.rm = TRUE)) HTH, Jorge On Sat, Mar 13, 2010 at 1:50 PM, Josh B <> wrote: > Hi, > > I was hoping someone could help me with the following problem. Consider > this toy example. For the input dataset there are four individuals (rows > "indv.1" through "indv.4"), measured for two different variables (columns > "var.1" and "var.2") at two different levels of a factor (column > "factor.level"). I want to calculate a matrix that has the average values > for each trait (rows "var1.avg" and "var2.avg") separated by each level of > the factor (columns "factor.a" and "factor.b"). > > Please try my code below. I'm stuck at the part where I write the averages > for each trait to the output matrix (see "y[j,i] <- mean(d[,j])" below). I > think my code is wrong at this step, but I don't know how to do it right. To > put it another way, why does my final product (the matrix called "y") have > no values in it? > > My real dataset has many more variables (210) and many more factors > (10) than this toy example, so any coding strategy must scale up well. > Thanks very much in advance! > > x <- read.table(textConnection("var.1 var.2 factor.level > indv.1 3 4 a > indv.2 8 7 a > indv.3 4 3 b > indv.4 0 9 b"), header = TRUE) > > y <- matrix(nrow = 2, ncol = 2) > colnames(y) <- c("factor.a", "factor.b") > rownames(y) <- c("var1.avg", "var2.avg") > > for(i in 1:2) { > by(x, x$factor.level, function(d) { > for (j in 1:2) { > y[j,i] <- mean(d[,j]) > } > } > ) > } > > y > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@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. > [[alternative HTML version deleted]] ______________________________________________ R-help@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.