[R] Outputing multilple subsets

Johann Hibschman johannh at gmail.com
Mon Nov 9 02:31:50 CET 2009


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




More information about the R-help mailing list