Hi, You may need ?split(), or ?aggregate() or ?ddply() from library(plyr)
dat1 <- read.table(tex="1 2 4 7 8 9 1 4 5 8 9 1 4 5 6 9 2 3 4 8 3 6 7 8 1 5 6 9 2 5 7 9",header=FALSE,sep="",fill=TRUE) ## res1 <- do.call(rbind,lapply(split(dat1,dat1[,1]),function(x) c(V1=x[1,1],colSums(x[,-1],na.rm=TRUE)))) write.table(res1,file="new.txt",row.names=FALSE,quote=FALSE) #or res2 <- with(dat1,aggregate(cbind(V2,V3,V4,V5,V6),list(V1=V1),sum,na.rm=TRUE)) #or library(plyr) res3 <- ddply(dat1,.(V1),colwise(sum,na.rm=TRUE)) A.K. Hi, in a text file like 1 2 4 7 8 9 1 4 5 8 9 1 4 5 6 9 2 3 4 8 3 6 7 8 1 5 6 9 2 5 7 9 And so on where the first column represents group's number data <- read.table("in.txt") ## first: - select rows that strat with one (check first column), apply methods only on thes rows (expect for the first column in each line); - save the result in another text file namely new.txt ## second: - do the same for these rows start with with two - save the result in new.txt after the prevous result And so on I have 9000 lines and around 100 groups (first column). for (i in 1:9000 ) { newdata <- data[ , which(data$V1 =='1')] - apply methods - save the result } Thanks for any 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.