Hi, Try this: dat1<-read.table(text=" Seamount Pico Nano Micro Total_Ch 1 0.0691 0.24200 0.00100 0.31210 1 0.0938 0.00521 0.02060 0.11961 1 0.1130 0.20000 0.06620 0.37920 1 0.0864 0.15900 0.22300 0.46840 1 0.0262 0.04570 0.00261 0.07451 2 0.0314 0.17400 0.12800 0.33340 ",sep="",header=TRUE,stringsAsFactors=FALSE)
library(data.table) dat2<-data.table(dat1) dat2mean<-dat2[,list(Pico=.Internal(mean(Pico)),Nano=.Internal(mean(Nano)),Micro=.Internal(mean(Micro))),by="Seamount"] dat2mean # Seamount Pico Nano Micro #1: 1 0.0777 0.130382 0.062682 #2: 2 0.0314 0.174000 0.128000 dat2sd<-dat2[,list(sdPico=sd(Pico),sdNano=sd(Nano),sdMicro=sd(Micro)),by="Seamount"] dat2sd # Seamount sdPico sdNano sdMicro #1: 1 0.03281463 0.101197 0.09340563 #2: 2 NA NA NA dat3comb<-data.frame(cbind(dat2mean,dat2sd)) dat3comb[,-5] Seamount Pico Nano Micro sdPico sdNano sdMicro 1 1 0.0777 0.130382 0.062682 0.03281463 0.101197 0.09340563 2 2 0.0314 0.174000 0.128000 NA NA NA A.K. ----- Original Message ----- From: Tinus Sonnekus <tsonne...@gmail.com> To: r-help@r-project.org Cc: Sent: Friday, September 7, 2012 4:49 PM Subject: [R] Producing a table with mean values Hi All, I have a data set wit three size classes (pico, nano and micro) and 12 different sites (Seamounts). I want to produce a table with the mean and standard deviation values for each site. Seamount Pico Nano Micro Total_Ch 1 Off_Mount 1 0.0691 0.24200 0.00100 0.31210 2 Off_Mount 1 0.0938 0.00521 0.02060 0.11961 3 Off_Mount 1 0.1130 0.20000 0.06620 0.37920 4 Off_Mount 1 0.0864 0.15900 0.22300 0.46840 5 Off_Mount 1 0.0262 0.04570 0.00261 0.07451 6 Off_Mount 2 0.0314 0.17400 0.12800 0.33340 I tried the following script but get an error message *Error in results[i, "u.Pico", "u.Nano", "u.Micro"] <- sapply(z, mean) : * * incorrect number of subscripts * The code I used: *SChla <- read.csv("SM_Chla_data.csv")* *sm <- as.character(unique(SChla$Seamount))* * * *results <- matrix(NA,nrow=length(sm),ncol=6,dimnames=list(sm,c("u.Pico","u.Nano","u.Micro","sd.Pico","sd.Nano","sd.Micro"))) * * * *for (i in sm){* *z <- subset(SChla, Seamount==i, select=c(Pico, Nano, Micro))* *results[i,"u.Pico","u.Nano","u.Micro"] <- sapply(z, mean)* *results[i,"sd.Pico","sd.Nano","sd.Micro"] <- sapply(z, sd)* *}* * * *print(results)* Please can some one advise me how to fix the error or maybe have an alternative solution I will appreciate it. Thank you. Tinus [[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. ______________________________________________ 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.