Thanks for your ideas. They are really helpful for me to think about my
question.
Cheers,
2009/11/9 David Winsemius <dwinsem...@comcast.net>

>
> On Nov 9, 2009, at 8:45 AM, rusers.sh wrote:
>
> 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
>>>
>>
> And not a particularly good choice for a variable name by virtue of
> potential "wetware confusion" with the concatenate function, c(.)
>
>
>
>  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
>>
>
> And you were apparently expecting variables "c.1", "c.2", and "c.3" to be
> constructed in that loop? That is way beyond the R-interpreter's currently
> level of integration with the device drivers reading input from the
> electroencephalograph that must be sitting on your machine.
>
> Perhaps you could have succeeded with:
>
> dftemp <- list() # outside the loop, need a list because results of the
> extract operation will be a df.
> ..........
> dftemp[[n]] <- c[c$b == n, ]  # inside the loop
>  write.csv(dftemp[[n]], file=paste("c:/c_", n, ".csv", sep=""))}
>
> The fact that you immediately wrote it to a file that did not store its
> name would make creation of a list unnecessary inside the loop, but it would
> store the results in a form that could be examined later from the command
> line.
>
>
>
>  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
>>>
>>>
> David Winsemius, MD
> Heritage Laboratories
> West Hartford, CT
>
>


-- 
-----------------
Jane Chang
Queen's

        [[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