重新插入其输出的R函数

时间:2019-05-21 00:30:09

标签: r function loops

我有一个硬件问题,其中有模拟数据,必须进行梯度增强。我想我了解梯度增强的实质,但是在设置循环时遇到了问题。

“ f”是使用tree()函数计算的400棵树的列表,其中涉及最初在函数外部定义的“ r”。

根据第一个“ f”重新计算“ r”,然后将其重新插入tree()函数

因此,基本上,我们需要400个“ r”,但r [1]已经定义。我们还需要400个“ f”,其中f [1]是r [1]的函数,并且f [2]使用从f [1]计算出的“ r”,重复此过程直到我们得到400个“ f” “

我希望这种解释是合理的(在我看来,这很简单)。似乎这可能是一个简单的循环,但是总体上我在编程时遇到了很多困难,即使编写伪代码也遇到了问题。

#Simulate data set
N=1000
X1=runif(N)
X2=2*runif(N)
SNR=10
Y=sin(10*X1) + 2*(X2^0.5)
sigma=sqrt(var(Y)/SNR)
Y=Y +rnorm(N,0,sigma)
newdat<-data.frame(c(Y,X1,X2))

#3a:  List of all boost trees
f=list()
r=Y

#3b:  Fit regression tree and calculate residual 
#THIS CODE IS NOT CORRECT AND IT'S WHAT I NEED HELP WITH
for(i in 1:400){
  f[[i]]=tree(r~X1+X2, data = newdat, control=tree.control(nobs = 1000,mincut = N/4)) 
r[2]=residuals(f[[1]], type="usual")
}

0 个答案:

没有答案