小编Tar*_*zan的帖子

R循环n次

我正在尝试写一个for循环来重复(c)和(d)100次.我想在for循环的每次迭代中打印TRS-TRS0的估计值.它应该停止算法,如果它很小(比如1/10000).最后,我希望它创建一个图表,其中显示每个值.

我想我在这里拥有一切,但是当我运行它时,我看不到任何事情发生.我错过了什么吗?

for (i in 1:100){
  #c)
  fit1 = loess(res~x2, data=data.frame(res,x1,x2))
  f2=predict(fit1,newdata=data.frame(res,x1,x2))
  res=data$y-mean(data$y) -f2 
  #d)
  fit2 = loess(res~x1, data=data.frame(res,x1,x2))
  f1=predict(fit2,newdata=data.frame(res,x1,x2))
  res=data$y - mean(data$y)-f1

  TSR=sum((data$y-mean(data$y)-f1-f2)^2);TSR
  if (abs(TSR-TSR0) > delta) TSR0=TSR else break
  #continue 
  if (abs(TSR-TSR0) < delta) break
  TSR0=TSR
  val=TSR-TSR0;val
  x11(); plot(x1,f1); plot(x2,f2)
}
Run Code Online (Sandbox Code Playgroud)

要重现,这里是创建的数据:

set.seed(3)
x1=runif(300);x2=runif(300)
error=rnorm(300,mean=0,sd=3)
z1=-2+3*x1; z2=2*sin(2*pi*x2) 
data=data.frame(x1,x2,y=z1+z2+error) 
#fit the model
TSR0=0
f10=0;f20=0
res=data$y-mean(data$y) -f10 -f20;
delta=.0001
Run Code Online (Sandbox Code Playgroud)

for-loop r loess

4
推荐指数
1
解决办法
5190
查看次数

Python双循环

我的循环遇到了麻烦.我得到一个400超出范围的错误.我申请的是不允许的,或者我的问题是什么?它对我来说看起来像法律语法?

survTime=np.array([400, 800, 1100, 900])
age=np.array([40, 40, 40, 40])
counter_1yr=0
counter_2yr=0
counter_3yr=0
n=1
for i in survTime:
     for j in age:
        if survTime[i] > 365 and age[j] < 50:
            counter_1yr+=1
            n+=1
            continue
        elif survTime[i] > 730 and age[j] < 50:
            counter_2yr+=1
            n+=1
            continue
        elif survTime[i] > 1095 and age[j] < 50:
            counter_3yr+=1
            n+=1
            continue
print("1 year probability: ", counter_1yr/n)
print("2 year probability: ", counter_2yr/n)
print("3 year probability: ", counter_3yr/n)
Run Code Online (Sandbox Code Playgroud)

python numpy python-3.x

0
推荐指数
1
解决办法
103
查看次数

标签 统计

for-loop ×1

loess ×1

numpy ×1

python ×1

python-3.x ×1

r ×1