n********g 发帖数: 218 | 1 我不太懂R,所以问个白痴的问题,请大家帮帮忙
我用R在RUN一个LOOP循环5次,下面是我的部分CODES:
for i in seq(5)
{ n=100
x=runif(n,-1,1)
y=1+x+rnorm(n,0,1)
# 通过一个fit 得到 S(x)
S(x)=fit$y
Z=qnorm(S(x))
fit2=lm(d~z)
等等
}
这个循环中S(x)可能会产生数据0而导致Z会有Inf,这在fit2中就出现了错误。所以
请交大家怎么写个条件句,如果出现S(x)有0或者Z有Inf的话就重新run一次,直到最后
5次循环后的结果都没有上面的问题。
先谢谢啦!!! | s*****9 发帖数: 108 | 2 用while(flag <=5),出现一次有效结果flag就加1 | j*****7 发帖数: 7 | 3 j<-1
while(j<=5)
{ n=100
x=runif(n,-1,1)
y=1+x+rnorm(n,0,1)
# 通过一个fit 得到 S(x)
if(出现S(x)有0或者Z有Inf的话) next;
else{ j<-j+1
S(x)=fit$y
Z=qnorm(S(x))
fit2=lm(d~z)
等等
}
} | n********g 发帖数: 218 | 4 谢谢你们
【在 j*****7 的大作中提到】 : j<-1 : while(j<=5) : { n=100 : x=runif(n,-1,1) : y=1+x+rnorm(n,0,1) : # 通过一个fit 得到 S(x) : if(出现S(x)有0或者Z有Inf的话) next; : else{ j<-j+1 : S(x)=fit$y : Z=qnorm(S(x))
|
|