Hi, Try: example <- read.table(text="ID Sex Location CL 1 F lake1 40 1 F lake1 1 F lake1 43 2 M lake1 30 3 M lake2 22 4 F lake2 25 4 F lake2 27",sep="",header=TRUE,stringsAsFactors=FALSE,fill=TRUE)
aggregate(CL~.,example,mean,na.rm=TRUE) #or library(plyr) ddply(example,.(ID,Sex,Location),summarize,CL=mean(CL,na.rm=TRUE)) #or from `result` res <- setNames(cbind(expand.grid(dimnames(result),stringsAsFactors=FALSE),as.data.frame(as.matrix(result))),c("Location","Sex","ID","CL")) res[!is.na(res$CL),c(3,2,1,4)] ###It would be better to store the results in a data.frame than in a matrix for this case. A.K. I have a table with three categorical columns (ID, Sex, Location) and a measurement column (CL). These are measurements from individuals in a study. Some individuals were measured more than once and thus have multiple rows. For those individuals, I need to take an average of all of their measurements so that I can run statistical tests without having pseudoreplication. Below is an example table with the code that I am using, the results that I am getting, and the results that I want (I am calling the table "example"). ID Sex Location CL 1 F lake1 40 1 F lake1 1 F lake1 43 2 M lake1 30 3 M lake2 22 4 F lake2 25 4 F lake2 27 > result <- with(example, tapply(CL, list(Location, Sex, ID), mean, na.rm=T)) this almost does what I want. I takes the mean for each ID, and retains its relationship to the categorical variables, the problem is the output looks like this: , , 1 F M lake1 41.66667 lake2 , , 2 F M lake1 30.00000 lake2 , , 3 F M lake1 lake2 22.00000 , , 4 F M lake1 lake2 26.00000 How do I get those results back into a single table like I originally had. In other words, I want a table that looks like this: ID Sex Location CL 1 F lake1 41.66667 2 M lake1 30 3 M lake2 22 4 F lake2 26.00000 Thanks for the help! ______________________________________________ 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.