在数据帧子集内循环

时间:2015-05-07 14:20:56

标签: r loops subset

这可能是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


}}

1 个答案:

答案 0 :(得分:1)

.SettingsButton:hover { .icon { #icons > .settingsIcon():hover; } } 是一个赋值语句。您可以在自己的行或函数定义和调用中分配内容,但只能在data = sub240循环定义中提供逻辑语句。如果您想要逻辑相等,则需要while。但是除非==在循环中发生变化并且您希望这是循环中断的条件,否则您不希望在data语句中出现这种情况。但一般来说,无论如何都不需要这种说法。作用域的方式在R中起作用,如果在循环外定义循环,则循环应该仍然能够访问while

此外,我确定您不会在data之前需要支架。正如您的代码所代表的那样,它不会运行,因为该括号未公开:您有三个空心括号(while之前,while之后和while之后),但只有两个小括号(无论如何我都能找到)。

尝试这样的事情:

if