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.

Reply via email to