这可能是R中的一个基本问题,但我试图在较大数据帧的子集中循环数据。我添加了' data = sub240'在'内'命令,但这会导致括号错误,我怀疑这是一个更大的问题。谁能告诉我如何在数据帧的子集上运行循环?我不认为它是相关的,但我正在使用' optiscale'循环中的包。
{while (rsquared.differ > .00001 && niter <= 30 && data=sub240) {
niter <- niter + 1
reg.os<- lm(dvar.os ~ index.os + educ.os)
rsquared.differ <- summary(reg.os)$r.squared - previous.rsquared
previous.rsquared <- summary(reg.os)$r.squared
record <- c(record, niter, summary(reg.os)$r.squared, rsquared.differ)
if (rsquared.differ > .00001) {
dvar.pred <- predict(reg.os)
opscaled.dvar <- opscale(intknow, dvar.pred, level = 1, process = 1)
dvar.os <- opscaled.dvar$os
intknow240.pred <- (dvar.os - (reg.os$coefficients[1] +
(reg.os$coefficients[4]*educ.os)
))*
(1/reg.os$coefficients[2])
opscaled.intknow240 <- opscale(anes$intknow, intknow240.pred, level = 1, process = 1)
intknow240.os <- opscaled.intknow240$os
}}
答案 0 :(得分:1)
.SettingsButton:hover {
.icon {
#icons > .settingsIcon():hover;
}
}
是一个赋值语句。您可以在自己的行或函数定义和调用中分配内容,但只能在data = sub240
循环定义中提供逻辑语句。如果您想要逻辑相等,则需要while
。但是除非==
在循环中发生变化并且您希望这是循环中断的条件,否则您不希望在data
语句中出现这种情况。但一般来说,无论如何都不需要这种说法。作用域的方式在R中起作用,如果在循环外定义循环,则循环应该仍然能够访问while
。
此外,我确定您不会在data
之前需要支架。正如您的代码所代表的那样,它不会运行,因为该括号未公开:您有三个空心括号(while
之前,while
之后和while
之后),但只有两个小括号(无论如何我都能找到)。
尝试这样的事情:
if