Hello,
Reeyarn_李智洋_10928113 wrote > > Hi, I want to run something like > SELECT firm_id, count(*), mean(value), sd(value) > FROM table > GROUP BY firm_id; > > But I have to write a for loop like > for ( id in unique(table$firm_id ) { > print(paste( id, mean(table[firm_id == id, "value"]) )) > } > > Is there any way to do it easier? Thanks :) > > > Best, > Reeyarn Lee > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@ 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. > You can use sql with package 'sqldf'. library(sqldf) # It needs package 'tcltk' ?sqldf tbl <- data.frame(firm_id=rep(c(1,2), 10), value=rnorm(20)) sqldf("SELECT firm_id, count(*), avg(value), stdev(value) FROM tbl GROUP BY firm_id;") I've changed the name of your data.frame because 'table' is an R function. Hope this helps, Rui Barradas -- View this message in context: http://r.789695.n4.nabble.com/How-to-compute-within-group-mean-and-sd-tp4501504p4501709.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.