[R] printing a variable during a loop

Joshua Wiley jwiley.psych at gmail.com
Thu Oct 21 21:12:37 CEST 2010


On Thu, Oct 21, 2010 at 12:03 PM, David Winsemius
<dwinsemius at comcast.net> wrote:
>
> On Oct 21, 2010, at 8:58 PM, Antonio Olinto wrote:
>
>> Thanks Adrienne, but I still in doubt. The behavior of print and message
>> looks the same.
>>
>> Nothing is displayed on the screen after minutes of routine processing .
>> All values of "i" are displayed only when I press the stop button (I'm under
>> Windows) or when "i" reaches the maximum value.
>>
>
> In the past people have needed to use flush.console() to get output to the
> screen. Unable to test since A) I'm not running your OS, and B) no
> reproducible example offered.

I am running your OS (though it would also be nice if you reported the
results of sessionInfo() ).  In any case, this worked for me on R
2.12.0 (i386-pc-mingw32):

for(i in 1:6) {Sys.sleep(3); print(i); flush.console()}

For your problem, I imagine something like (though untested because no data):

for (i in 1:23194) {
dat.stat[i,c(2:8)]<-quantile(dat.bat[BL==block[i],2],prob=c(0,0.025,0.25,0.5,0.75,0.975,1))
print(i)
flush.console()
}

>
>> Thanks again,
>>
>> Antônio Olitno
>>
>>
>> Citando Adrienne Wootten <amwootte at ncsu.edu>:
>>
>>> instead of print use this
>>>
>>> message(i)
>>>
>>> the message command is used for things like this and it will print the
>>> value
>>> of i as you are looping through, but you can also do this:
>>>
>>> message("Counter value is: ",i)
>>>
>>> which returns for i = 20 for example
>>>
>>> "Counter value is 20"
>>>
>>> for more check out the message help section in the html
>>>
>>> ? message
>>>
>>>
>>> Adrienne Wootten
>>> NCSU
>>>
>>> On Thu, Oct 21, 2010 at 2:05 PM, Antonio Olinto
>>> <aolinto_r at bignet.com.br>wrote:
>>>
>>>> Hello,
>>>>
>>>> About looping, consider the example:
>>>>
>>>> for (i in 1:23194) {
>>>>
>>>>
>>>> dat.stat[i,c(2:8)]<-quantile(dat.bat[BL==block[i],2],prob=c(0,0.025,0.25,0.5,0.75,0.975,1))
>>>> print(i)
>>>> }
>>>>
>>>> I'd like to have the value of "i" printed for each loop (step). As I
>>>> could
>>>> see the values of "i" are shown on screen only after all the work is
>>>> done.
>>>>
>>>> Thanks in advance for any suggestion.
>>>>
>>>> Best regards,
>>>>
>>>> Antonio
>>
> --
>
> David Winsemius, MD
> West Hartford, CT
>
> ______________________________________________
> R-help at 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.
>



-- 
Joshua Wiley
Ph.D. Student, Health Psychology
University of California, Los Angeles
http://www.joshuawiley.com/



More information about the R-help mailing list