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]]
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?See ?try Uwe Ligges> Thanks! > > [[alternative HTML version deleted]] > > ______________________________________________ > 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.
2009/3/27 huiming song <huimings at gmail.com>:> 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? >not sure I properly understood. Consider: x = seq(-pi,pi,length=1001) z = sin(1/x) # Warning message: # In sin(1/x) : NaNs produced x[500:502]; z[500:502] # [1] -0.006283185 0.000000000 0.006283185 # [1] -0.8754095 NaN 0.8754095 one NaN and one warning have been created, the remaining 1000 calculations has been executed. lim(x->0)sin(1/x) not exists so sin(1/0) is not a number nan z1 = z[!is.nan(z)] x1 = x[!is.nan(z)] # x and z without the z's nan position hope that help Patrizio
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) 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 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.-- Nash - morrison at ibms.sinica.edu.tw