Hi Johann, Excellent. That is what i really want. A little problem is why the "c.n" does not exist. Should the "c.n" in the memory? Sometimes, i also hope to see "c.n" directly in R besides exporting. Could i see the "c.n" with some function in the loops? > a<-c(1:10) > b<-c(rep(1,3),rep(2,3),rep(3,4)) > c<-data.frame(a,b) #c is the example data > num<-c(unique(b)) > for (n in num) { + c.n <- c[c$b==n,] + write.csv(c.n, file=paste("c:/c_", n, ".csv", sep=""))} > num [1] 1 2 3 > c.1 Error: object 'c.1' not found > c.2 Error: object 'c.2' not found > c.3 Error: object 'c.3' not found
Thanks a lot. ----------------- Jane Chang Queen's 2009/11/9 Johann Hibschman <joha...@gmail.com> > On Nov 8, 2009, at 7:23 PM, rusers.sh wrote: > > for (i in num) { >> c_num<-c[c$b==num,] >> write.csv(c_num,file="c:/c_num.csv") >> } >> >> Warning messages: >> 1: In c$b == num : >> longer object length is not a multiple of shorter object length >> > > This is because you're comparing column b to the entire vector of numbers > (num), not the current number in the iteration (i). The first line of the > loop should be "c_num<-c[c$b==i,]". > > From a style point of view, I'd use "n" as my variable, since "i" is too > commonly used as an integer index. > > Also, you will be overwriting the same file, called "c_num.csv", on each > iteration. > > You should try something more like: > > for (n in num) { > c.n <- c[c$b==n,] > write.csv(c.n, file=paste("c:/c_", n, ".csv", sep="") > } > > I hope that helps. > > Cheers, > Johann Hibschman > > > [[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.