how to break the loop using sapply?

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

how to break the loop using sapply?

PO SU

Dear expeRts,
   i  use sapply for loop, and i want to break it when i needed, how to do that?  e.g.

sapply( 1:10, function(i) {
if(i==5) break and jump out of the function sapply
} )

I want to do it because i have to loop 1000000 times, but i don't know when it will break, that means, it may need break at i=5 or at i=50000, for the possible of the  last case, i don't use for loop, because it slow(is it right?).
So,if you happen to know it ,may you help me?


--

PO SU
mail: [hidden email]
Majored in Statistics from SJTU
______________________________________________
[hidden email] 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 | Threaded
Open this post in threaded view
|

Re: how to break the loop using sapply?

Jeff Newmiller
Don't use apply functions if you want to do what you describe. They don't work that way. Use a while control structure.

---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<[hidden email]>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
---------------------------------------------------------------------------
Sent from my phone. Please excuse my brevity.

On October 9, 2014 10:24:49 PM PDT, PO SU <[hidden email]> wrote:

>
>Dear expeRts,
>   i  use sapply for loop, and i want to break it when i needed, how to
>do that?  e.g.
>
>sapply( 1:10, function(i) {
>if(i==5) break and jump out of the function sapply
>} )
>
>I want to do it because i have to loop 1000000 times, but i don't know
>when it will break, that means, it may need break at i=5 or at i=50000,
>for the possible of the  last case, i don't use for loop, because it
>slow(is it right?).
>So,if you happen to know it ,may you help me?
>
>
>--
>
>PO SU
>mail: [hidden email]
>Majored in Statistics from SJTU
>______________________________________________
>[hidden email] 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.

______________________________________________
[hidden email] 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 | Threaded
Open this post in threaded view
|

Re: how to break the loop using sapply?

PO SU


Is that mean while may be more effient than  for in R? as i know, while and for  are all just functions in R.
Tks for your suggestion to not use apply that way, but i want to know, if possible, is there any way to break it ?
Actually, there is a additional question:
  x<- c(3,4,5,6,9)
 sapply(x ,function(i){
foo(i)  #do something to each value in x,how can i know the i's index in x?
)}
In my way , i always
sapply(seq(x),function(i){
foo(x[i])
})
or
Map( function(i,index){
foo(i)  # through index to know the i's index in x
},x ,seq(x))

How you solve the problem? I mean just use apply functions.



--

PO SU
mail: [hidden email]
Majored in Statistics from SJTU




At 2014-10-10 13:58:29, "Jeff Newmiller" <[hidden email]> wrote:

>Don't use apply functions if you want to do what you describe. They don't work that way. Use a while control structure.
>
>---------------------------------------------------------------------------
>Jeff Newmiller                        The     .....       .....  Go Live...
>DCN:<[hidden email]>        Basics: ##.#.       ##.#.  Live Go...
>                                      Live:   OO#.. Dead: OO#..  Playing
>Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
>/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
>---------------------------------------------------------------------------
>Sent from my phone. Please excuse my brevity.
>
>On October 9, 2014 10:24:49 PM PDT, PO SU <[hidden email]> wrote:
>>
>>Dear expeRts,
>>   i  use sapply for loop, and i want to break it when i needed, how to
>>do that?  e.g.
>>
>>sapply( 1:10, function(i) {
>>if(i==5) break and jump out of the function sapply
>>} )
>>
>>I want to do it because i have to loop 1000000 times, but i don't know
>>when it will break, that means, it may need break at i=5 or at i=50000,
>>for the possible of the  last case, i don't use for loop, because it
>>slow(is it right?).
>>So,if you happen to know it ,may you help me?
>>
>>
>>--
>>
>>PO SU
>>mail: [hidden email]
>>Majored in Statistics from SJTU
>>______________________________________________
>>[hidden email] 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.
>
______________________________________________
[hidden email] 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 | Threaded
Open this post in threaded view
|

Re: how to break the loop using sapply?

Jeff Newmiller
Is it possible to break it? I already told you that... NO. Also your mention of efficiency is not relevant. Keep in mind that apply functions are not significantly faster than for loops or while loops. They are just compact ways to express your intent. Usually people having speed problems with for loops are doing something wasteful inside their loop.

Re you're alternate question: you can't do that either. Your use of seq is the correct way if that is what you want to do.

---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<[hidden email]>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
---------------------------------------------------------------------------
Sent from my phone. Please excuse my brevity.

On October 9, 2014 11:12:33 PM PDT, PO SU <[hidden email]> wrote:

>
>
>Is that mean while may be more effient than  for in R? as i know, while
>and for  are all just functions in R.
>Tks for your suggestion to not use apply that way, but i want to know,
>if possible, is there any way to break it ?
>Actually, there is a additional question:
>  x<- c(3,4,5,6,9)
> sapply(x ,function(i){
>foo(i)  #do something to each value in x,how can i know the i's index
>in x?
>)}
>In my way , i always
>sapply(seq(x),function(i){
>foo(x[i])
>})
>or
>Map( function(i,index){
>foo(i)  # through index to know the i's index in x
>},x ,seq(x))
>
>How you solve the problem? I mean just use apply functions.
>
>
>
>--
>
>PO SU
>mail: [hidden email]
>Majored in Statistics from SJTU
>
>
>
>
>At 2014-10-10 13:58:29, "Jeff Newmiller" <[hidden email]>
>wrote:
>>Don't use apply functions if you want to do what you describe. They
>don't work that way. Use a while control structure.
>>
>>---------------------------------------------------------------------------
>>Jeff Newmiller                        The     .....       .....  Go
>Live...
>>DCN:<[hidden email]>        Basics: ##.#.       ##.#.  Live
>Go...
>>                                      Live:   OO#.. Dead: OO#..
>Playing
>>Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
>>/Software/Embedded Controllers)               .OO#.       .OO#.
>rocks...1k
>>---------------------------------------------------------------------------
>
>>Sent from my phone. Please excuse my brevity.
>>
>>On October 9, 2014 10:24:49 PM PDT, PO SU <[hidden email]>
>wrote:
>>>
>>>Dear expeRts,
>>>   i  use sapply for loop, and i want to break it when i needed, how
>to
>>>do that?  e.g.
>>>
>>>sapply( 1:10, function(i) {
>>>if(i==5) break and jump out of the function sapply
>>>} )
>>>
>>>I want to do it because i have to loop 1000000 times, but i don't
>know
>>>when it will break, that means, it may need break at i=5 or at
>i=50000,
>>>for the possible of the  last case, i don't use for loop, because it
>>>slow(is it right?).
>>>So,if you happen to know it ,may you help me?
>>>
>>>
>>>--
>>>
>>>PO SU
>>>mail: [hidden email]
>>>Majored in Statistics from SJTU
>>>______________________________________________
>>>[hidden email] 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.
>>

______________________________________________
[hidden email] 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 | Threaded
Open this post in threaded view
|

Re: how to break the loop using sapply?

Hervé Pagès
In reply to this post by PO SU
Hi,

On 10/09/2014 11:12 PM, PO SU wrote:
>
>
> Is that mean while may be more effient than  for in R? as i know, while and for  are all just functions in R.
> Tks for your suggestion to not use apply that way, but i want to know, if possible, is there any way to break it ?

As Jeff said, you cannot break the loop that happens inside
the sapply() call. Also it is *not* true that for or while are
less efficient than sapply() or lapply():

 > a <- numeric(100000)

 > system.time(for (i in 1:100000) {a[i] <- i * (i - 1) / 2})
    user  system elapsed
   0.148   0.000   0.147

 > system.time(b <- sapply(1:100000, function(i) {i * (i - 1) / 2}))
    user  system elapsed
   0.194   0.007   0.201

 > identical(a, b)
[1] TRUE

 > system.time(c <- unlist(lapply(1:100000, function(i) {i * (i - 1) / 2})))
    user  system elapsed
   0.116   0.000   0.119

 > identical(a, c)
[1] TRUE

OK lapply() is maybe slightly faster but not significantly. And the
more work you need to do inside the loop, the less significant this
difference will be.

> Actually, there is a additional question:
>    x<- c(3,4,5,6,9)
>   sapply(x ,function(i){
> foo(i)  #do something to each value in x,how can i know the i's index in x?
> )}

You can't. Inside the anonymous function, you only have access to 'i'
which is an element of 'x', not its index in 'x'.

> In my way , i always
> sapply(seq(x),function(i){
> foo(x[i])
> })

Yes, if you want to loop on the index instead of the elements, you
need to do something like that. Using seq_along(x) is probably
cleaner than seq(x) for this.

Cheers,
H.

> or
> Map( function(i,index){
> foo(i)  # through index to know the i's index in x
> },x ,seq(x))
>
> How you solve the problem? I mean just use apply functions.
>
>
>
> --
>
> PO SU
> mail: [hidden email]
> Majored in Statistics from SJTU
>
>
>
>
> At 2014-10-10 13:58:29, "Jeff Newmiller" <[hidden email]> wrote:
>> Don't use apply functions if you want to do what you describe. They don't work that way. Use a while control structure.
>>
>> ---------------------------------------------------------------------------
>> Jeff Newmiller                        The     .....       .....  Go Live...
>> DCN:<[hidden email]>        Basics: ##.#.       ##.#.  Live Go...
>>                                       Live:   OO#.. Dead: OO#..  Playing
>> Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
>> /Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
>> ---------------------------------------------------------------------------
>> Sent from my phone. Please excuse my brevity.
>>
>> On October 9, 2014 10:24:49 PM PDT, PO SU <[hidden email]> wrote:
>>>
>>> Dear expeRts,
>>>     i  use sapply for loop, and i want to break it when i needed, how to
>>> do that?  e.g.
>>>
>>> sapply( 1:10, function(i) {
>>> if(i==5) break and jump out of the function sapply
>>> } )
>>>
>>> I want to do it because i have to loop 1000000 times, but i don't know
>>> when it will break, that means, it may need break at i=5 or at i=50000,
>>> for the possible of the  last case, i don't use for loop, because it
>>> slow(is it right?).
>>> So,if you happen to know it ,may you help me?
>>>
>>>
>>> --
>>>
>>> PO SU
>>> mail: [hidden email]
>>> Majored in Statistics from SJTU
>>> ______________________________________________
>>> [hidden email] 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.
>>
> ______________________________________________
> [hidden email] 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.
>

--
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: [hidden email]
Phone:  (206) 667-5791
Fax:    (206) 667-1319

______________________________________________
[hidden email] 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 | Threaded
Open this post in threaded view
|

Re: how to break the loop using sapply?

PO SU

OK,  it  seems that i misunderstand something,  i forget how and when i pick up the monition in my mind that " as possible as avoid using for loop".
TKS for all your suggestions!
But i still want the way to break sapply, if not exsits now, create it .....
such as:
 sapply<-function(...){
out<-FALSE
.....
if(out==TRUE) return
}
sapply(1:10, function(i){
if(i=5)  out<-TRUE
}
)
That means to rewrite sapply, and create a virable in it , let called OUT, then mayebe in sapply(1:10,FUN)
FUN can use OUT. because i think in sapply,  FUN is an inner function,so it can use OUT.
when it let OUT=TRUE. sapply should be break..........







--

PO SU
mail: [hidden email]
Majored in Statistics from SJTU




At 2014-10-10 14:44:47, "Hervé Pagès" <[hidden email]> wrote:

>Hi,
>
>On 10/09/2014 11:12 PM, PO SU wrote:
>>
>>
>> Is that mean while may be more effient than  for in R? as i know, while and for  are all just functions in R.
>> Tks for your suggestion to not use apply that way, but i want to know, if possible, is there any way to break it ?
>
>As Jeff said, you cannot break the loop that happens inside
>the sapply() call. Also it is *not* true that for or while are
>less efficient than sapply() or lapply():
>
> > a <- numeric(100000)
>
> > system.time(for (i in 1:100000) {a[i] <- i * (i - 1) / 2})
>    user  system elapsed
>   0.148   0.000   0.147
>
> > system.time(b <- sapply(1:100000, function(i) {i * (i - 1) / 2}))
>    user  system elapsed
>   0.194   0.007   0.201
>
> > identical(a, b)
>[1] TRUE
>
> > system.time(c <- unlist(lapply(1:100000, function(i) {i * (i - 1) / 2})))
>    user  system elapsed
>   0.116   0.000   0.119
>
> > identical(a, c)
>[1] TRUE
>
>OK lapply() is maybe slightly faster but not significantly. And the
>more work you need to do inside the loop, the less significant this
>difference will be.
>
>> Actually, there is a additional question:
>>    x<- c(3,4,5,6,9)
>>   sapply(x ,function(i){
>> foo(i)  #do something to each value in x,how can i know the i's index in x?
>> )}
>
>You can't. Inside the anonymous function, you only have access to 'i'
>which is an element of 'x', not its index in 'x'.
>
>> In my way , i always
>> sapply(seq(x),function(i){
>> foo(x[i])
>> })
>
>Yes, if you want to loop on the index instead of the elements, you
>need to do something like that. Using seq_along(x) is probably
>cleaner than seq(x) for this.
>
>Cheers,
>H.
>
>> or
>> Map( function(i,index){
>> foo(i)  # through index to know the i's index in x
>> },x ,seq(x))
>>
>> How you solve the problem? I mean just use apply functions.
>>
>>
>>
>> --
>>
>> PO SU
>> mail: [hidden email]
>> Majored in Statistics from SJTU
>>
>>
>>
>>
>> At 2014-10-10 13:58:29, "Jeff Newmiller" <[hidden email]> wrote:
>>> Don't use apply functions if you want to do what you describe. They don't work that way. Use a while control structure.
>>>
>>> ---------------------------------------------------------------------------
>>> Jeff Newmiller                        The     .....       .....  Go Live...
>>> DCN:<[hidden email]>        Basics: ##.#.       ##.#.  Live Go...
>>>                                       Live:   OO#.. Dead: OO#..  Playing
>>> Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
>>> /Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
>>> ---------------------------------------------------------------------------
>>> Sent from my phone. Please excuse my brevity.
>>>
>>> On October 9, 2014 10:24:49 PM PDT, PO SU <[hidden email]> wrote:
>>>>
>>>> Dear expeRts,
>>>>     i  use sapply for loop, and i want to break it when i needed, how to
>>>> do that?  e.g.
>>>>
>>>> sapply( 1:10, function(i) {
>>>> if(i==5) break and jump out of the function sapply
>>>> } )
>>>>
>>>> I want to do it because i have to loop 1000000 times, but i don't know
>>>> when it will break, that means, it may need break at i=5 or at i=50000,
>>>> for the possible of the  last case, i don't use for loop, because it
>>>> slow(is it right?).
>>>> So,if you happen to know it ,may you help me?
>>>>
>>>>
>>>> --
>>>>
>>>> PO SU
>>>> mail: [hidden email]
>>>> Majored in Statistics from SJTU
>>>> ______________________________________________
>>>> [hidden email] 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.
>>>
>> ______________________________________________
>> [hidden email] 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.
>>
>
>--
>Hervé Pagès
>
>Program in Computational Biology
>Division of Public Health Sciences
>Fred Hutchinson Cancer Research Center
>1100 Fairview Ave. N, M1-B514
>P.O. Box 19024
>Seattle, WA 98109-1024
>
>E-mail: [hidden email]
>Phone:  (206) 667-5791
>Fax:    (206) 667-1319
______________________________________________
[hidden email] 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 | Threaded
Open this post in threaded view
|

Re: how to break the loop using sapply?

Jeff Newmiller
Doing as much as possible with vectors instead of loops of a good thing. Fooling yourself that apply functions are vectorized is, well, not a good thing.

If you want to write a function to use instead of sapply, fine, but don't call it *apply because those functions always give you one result for each input item you start with, and anyone who reads your code will be confused if you rename a standard function. I think you need to use ?while.
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<[hidden email]>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
---------------------------------------------------------------------------
Sent from my phone. Please excuse my brevity.

On October 10, 2014 1:21:23 AM PDT, PO SU <[hidden email]> wrote:

>
>OK,  it  seems that i misunderstand something,  i forget how and when i
>pick up the monition in my mind that " as possible as avoid using for
>loop".
>TKS for all your suggestions!
>But i still want the way to break sapply, if not exsits now, create it
>.....
>such as:
> sapply<-function(...){
>out<-FALSE
>.....
>if(out==TRUE) return
>}
>sapply(1:10, function(i){
>if(i=5)  out<-TRUE
>}
>)
>That means to rewrite sapply, and create a virable in it , let called
>OUT, then mayebe in sapply(1:10,FUN)
>FUN can use OUT. because i think in sapply,  FUN is an inner
>function,so it can use OUT.
>when it let OUT=TRUE. sapply should be break..........
>
>
>
>
>
>
>
>--
>
>PO SU
>mail: [hidden email]
>Majored in Statistics from SJTU
>
>
>
>
>At 2014-10-10 14:44:47, "Hervé Pagès" <[hidden email]> wrote:
>>Hi,
>>
>>On 10/09/2014 11:12 PM, PO SU wrote:
>>>
>>>
>>> Is that mean while may be more effient than  for in R? as i know,
>while and for  are all just functions in R.
>>> Tks for your suggestion to not use apply that way, but i want to
>know, if possible, is there any way to break it ?
>>
>>As Jeff said, you cannot break the loop that happens inside
>>the sapply() call. Also it is *not* true that for or while are
>>less efficient than sapply() or lapply():
>>
>> > a <- numeric(100000)
>>
>> > system.time(for (i in 1:100000) {a[i] <- i * (i - 1) / 2})
>>    user  system elapsed
>>   0.148   0.000   0.147
>>
>> > system.time(b <- sapply(1:100000, function(i) {i * (i - 1) / 2}))
>>    user  system elapsed
>>   0.194   0.007   0.201
>>
>> > identical(a, b)
>>[1] TRUE
>>
>> > system.time(c <- unlist(lapply(1:100000, function(i) {i * (i - 1) /
>2})))
>>    user  system elapsed
>>   0.116   0.000   0.119
>>
>> > identical(a, c)
>>[1] TRUE
>>
>>OK lapply() is maybe slightly faster but not significantly. And the
>>more work you need to do inside the loop, the less significant this
>>difference will be.
>>
>>> Actually, there is a additional question:
>>>    x<- c(3,4,5,6,9)
>>>   sapply(x ,function(i){
>>> foo(i)  #do something to each value in x,how can i know the i's
>index in x?
>>> )}
>>
>>You can't. Inside the anonymous function, you only have access to 'i'
>>which is an element of 'x', not its index in 'x'.
>>
>>> In my way , i always
>>> sapply(seq(x),function(i){
>>> foo(x[i])
>>> })
>>
>>Yes, if you want to loop on the index instead of the elements, you
>>need to do something like that. Using seq_along(x) is probably
>>cleaner than seq(x) for this.
>>
>>Cheers,
>>H.
>>
>>> or
>>> Map( function(i,index){
>>> foo(i)  # through index to know the i's index in x
>>> },x ,seq(x))
>>>
>>> How you solve the problem? I mean just use apply functions.
>>>
>>>
>>>
>>> --
>>>
>>> PO SU
>>> mail: [hidden email]
>>> Majored in Statistics from SJTU
>>>
>>>
>>>
>>>
>>> At 2014-10-10 13:58:29, "Jeff Newmiller" <[hidden email]>
>wrote:
>>>> Don't use apply functions if you want to do what you describe. They
>don't work that way. Use a while control structure.
>>>>
>>>>
>---------------------------------------------------------------------------
>>>> Jeff Newmiller                        The     .....       .....  Go
>Live...
>>>> DCN:<[hidden email]>        Basics: ##.#.       ##.#.
>Live Go...
>>>>                                       Live:   OO#.. Dead: OO#..
>Playing
>>>> Research Engineer (Solar/Batteries            O.O#.       #.O#.
>with
>>>> /Software/Embedded Controllers)               .OO#.       .OO#.
>rocks...1k
>>>>
>---------------------------------------------------------------------------
>>>> Sent from my phone. Please excuse my brevity.
>>>>
>>>> On October 9, 2014 10:24:49 PM PDT, PO SU <[hidden email]>
>wrote:
>>>>>
>>>>> Dear expeRts,
>>>>>     i  use sapply for loop, and i want to break it when i needed,
>how to
>>>>> do that?  e.g.
>>>>>
>>>>> sapply( 1:10, function(i) {
>>>>> if(i==5) break and jump out of the function sapply
>>>>> } )
>>>>>
>>>>> I want to do it because i have to loop 1000000 times, but i don't
>know
>>>>> when it will break, that means, it may need break at i=5 or at
>i=50000,
>>>>> for the possible of the  last case, i don't use for loop, because
>it
>>>>> slow(is it right?).
>>>>> So,if you happen to know it ,may you help me?
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> PO SU
>>>>> mail: [hidden email]
>>>>> Majored in Statistics from SJTU
>>>>> ______________________________________________
>>>>> [hidden email] 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.
>>>>
>>> ______________________________________________
>>> [hidden email] 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.
>>>
>>
>>--
>>Hervé Pagès
>>
>>Program in Computational Biology
>>Division of Public Health Sciences
>>Fred Hutchinson Cancer Research Center
>>1100 Fairview Ave. N, M1-B514
>>P.O. Box 19024
>>Seattle, WA 98109-1024
>>
>>E-mail: [hidden email]
>>Phone:  (206) 667-5791
>>Fax:    (206) 667-1319

______________________________________________
[hidden email] 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.