eval 中的错误(expr,envir,enclos):没有用于 break/next 的循环,跳转到顶层

Posted

技术标签:

【中文标题】eval 中的错误(expr,envir,enclos):没有用于 break/next 的循环,跳转到顶层【英文标题】:Error in eval(expr, envir, enclos): no loop for break/next, jumping to top level 【发布时间】:2014-04-10 05:12:27 【问题描述】:

我正在尝试对具有许多因素的负二项式模型进行逐步分析:

step(glm.nb(totphy~lat+long+elev+cult+poll+blkage+canden+irr+dust+dustcon+mid+herb+miteprob+ermprob+tsmprob+mcdprob+brprob+armprob+mitapp+acra+agri+carz+envi+fujim+next+vend+zeal+cover+orchtype+pestint+mating+ties+rimon+igr+lime+naa+sevin+land+area+ermpres+tsmpres+mcdpres+armpres+zmalipres+ltemp+lmaxtemp+lmintemp+ldewp+lrh+lwindsp+lwinddir+lsolar+lprecip+lleaf+lsoil,data=mites), direction="forward", criterion=aic)

如果我只包含“fujim”以下的变量,则此代码有效,添加更多变量会导致此错误:

Error in eval(expr, envir, enclos) : 
  no loop for break/next, jumping to top level

我对 R 相当陌生,那么这是什么意思?

【问题讨论】:

您的代码肯定包含一些换行符:|此外,在编辑问题时,请在选择相关区域后使用“”符号来格式化代码区域。 你能做一个可重现的例子来说明这个问题吗? 可能是您的“next”变量被解释为“next”语句以结束跳过循环 【参考方案1】:

正如 Karl Forner 所指出的,问题可能出在一个名为“next”的变量上,所以只需重命名它即可。检查以下代码:

# Data
data=data.frame("y"=rnorm(10),"x"=rnorm(10),"next"=1:10)

# Error
lm("y~x+next",data=data)

# Good
colnames(data)[3]="mod.next"
lm("y~x+mod.next",data=data)

【讨论】:

为了避免删除这个(显然是正确的)答案,请改写它。它看起来像是“我也有这个问题”的答案。这些可能会被删除。

以上是关于eval 中的错误(expr,envir,enclos):没有用于 break/next 的循环,跳转到顶层的主要内容,如果未能解决你的问题,请参考以下文章

while TRUE + 在子环境中中断

ls(envir = envir, all.names = private) 中的错误:R 中的“envir”参数无效

jags.parallel - get(name, envir = envir) 中的错误:第一个参数无效

Perl eval EXPR 用单引号或双引号括起来

09 expr 命令

09 expr 命令