> Uwe Ligges wrote: > Please read the question more carefully, the sin() example was used > as a method that does not give an error but works as expected (just > with the warning), but the question is how not to break the loop, > and so my answer was "see ?try".
So, Do you have any solution about his problem ? > > On Sat, 28 Mar 2009 01:36:36 +0800, huiming song wrote > >> hi, everybody, please help me with this question: > >> > >> If I want to do iteration for 1000 times, however, for the 500th > >> iteration, there is NaN appears. Then the iteration will stop. If I > >> don't want the stop and want the all the 1000 iterations be done. > >> What shall I do? > >> > >> suppose I have x[1:1000] and z[1:1000],I want to do some calculation > >> for all x[1] to x[1000]. > >> > >> z=rep(0,1000) > >> for (i in 1:1000){ > >> z[i]=sin(1/x[i]) > >> } > >> > >> if x[900] is 0, in the above code it will not stop when NaN appears. > >> Suppose when sin(1/x[900]) is NaN appears and the iteration will now > >> fulfill the rest 100 iterations. How can I write a code to let all > >> the 1000 iterations be done? > >> > >> Thanks! On Sat, 28 Mar 2009 16:35:24 +0100, Uwe Ligges wrote > Nash wrote: > > hi, you can try this method. > > > > ## if x is a vector > > x <- runif(1000) > > ## if sin(1/0) will appear NaN. we make the situation. > > x[sample(1:length(x),5)] <- 0 > > z <- suppressWarnings(ifelse(is.na(sin(1/x)),NA,sin(1/x))) > > is.numeric(z) > > > > ## if x is a matrix > > x=matrix(runif(1000),100,10) > > x[sample(1:nrow(x),50),sample(1:ncol(x),5)] <- 0 > > z <- suppressWarnings(ifelse(is.na(sin(1/x)),NA,sin(1/x))) > > is.numeric(z) > > > > Please read the question more carefully, the sin() example was used > as a method that does not give an error but works as expected (just > with the warning), but the question is how not to break the loop, > and so my answer was "see ?try". > > Uwe Ligges > > > > > On Sat, 28 Mar 2009 01:36:36 +0800, huiming song wrote > >> hi, everybody, please help me with this question: > >> > >> If I want to do iteration for 1000 times, however, for the 500th > >> iteration, there is NaN appears. Then the iteration will stop. If I > >> don't want the stop and want the all the 1000 iterations be done. > >> What shall I do? > >> > >> suppose I have x[1:1000] and z[1:1000],I want to do some calculation > >> for all x[1] to x[1000]. > >> > >> z=rep(0,1000) > >> for (i in 1:1000){ > >> z[i]=sin(1/x[i]) > >> } > >> > >> if x[900] is 0, in the above code it will not stop when NaN appears. > >> Suppose when sin(1/x[900]) is NaN appears and the iteration will now > >> fulfill the rest 100 iterations. How can I write a code to let all > >> the 1000 iterations be done? > >> > >> Thanks! > >> > >> [[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. > > > > > > -- > > Nash - morri...@ibms.sinica.edu.tw > > > > ______________________________________________ > > 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. -- Nash - morri...@ibms.sinica.edu.tw ______________________________________________ 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.