我是R的新手(曾经使用STATA),似乎有一个错误:意外'}':“}”。我似乎无法找到问题。我正在将非参数方法与池化OLS进行比较,以查看哪些方法在刚刚发布的公共数据集中表现更好。我知道我已经分配了一个小循环和小型n.train。任何帮助都会很棒。非常感激。
M <- 10
n.train <-90
n <- nrow(smokedatasample)
write(c("linear","ll"),file="psedata.xlsx",ncol=2)
train <- smokedatasample
sample.OLS <- lm(model.formula.birth,data=smokedatasample, x=TRUE,y=TRUE)
np.smoke.reg <- npreg(np.formula,data=smokedatasample,regtype="ll",nmulti=1)
pse.lm <- numeric()
pse.ll <- numeric()
for(m in 1:M) {
smoke.shuffle <- smokedatasample[sample(1:n,replace=FALSE),]
train <- smoke.shuffle[1:n.train,]
eval <- smoke.shuffle[(n.train+1):n,]
shuffle.sample.OLS <- lm(model.formula.birth, data=train)
yhat.OLS <- predict(shuffle.sample.OLS, newdata=eval)
pse.lm[m] <- mean((eval$dbirwt-yhat.OLS)^2)
shuffle.np.smoke.reg <- npreg(np.formula,data=train, regtype=np.smoke.reg$bws$regtype,
ckertype=np.smoke.reg$bws$ckertype,
ckerorder=np.smoke.reg$bws$ckerorder,
ukertype=np.smoke.reg$bws$ukertype,
okertype=np.smoke.reg$bws$okertype,
bws=np.smoke.reg$bws$bw)
yhat.np <- predict(shuffle.np.smoke.reg, newdata=eval)
pse.ll[m] <- mean((eval$dbirwt-yhat.np)^2)
write(c(pse.lm[m],pse.ll[m], file= "psedata.xlsx" , ncol=2 ,append=TRUE)
}
答案 0 :(得分:1)
您在}
之前的最后一行忘记了一个方括号。
write(c(pse.lm[m],pse.ll[m]), file= "psedata.xlsx" , ncol=2 ,append=TRUE)
而不是
write(c(pse.lm[m],pse.ll[m], file= "psedata.xlsx" , ncol=2 ,append=TRUE)