我收到了错误消息:
错误:对象' x'找不到
或更复杂的版本,如
平均值(x)出错: 评估论证的错误' x'选择功能方法'意思是':错误:对象' x'找不到
这是什么意思?
答案 0 :(得分:26)
错误意味着R无法找到错误消息中提到的变量。
重现错误的最简单方法是键入不存在的变量的名称。 (如果您已经定义了x
,请使用其他变量名称。)
x
## Error: object 'x' not found
更复杂的错误版本具有相同的原因:在x
不存在时调用函数。
mean(x)
## Error in mean(x) :
## error in evaluating the argument 'x' in selecting a method for function 'mean': Error: object 'x' not found
一旦定义了变量,就不会发生错误。
x <- 1:5
x
## [1] 1 2 3 4 5
mean(x)
## [1] 3
ls() # lists all the variables that have been defined
exists("x") # returns TRUE or FALSE, depending upon whether x has been defined.
使用非标准评估时可能会发生这样的错误。例如,使用subset
时,如果数据框中的列名不存在于子集中,则会发生错误。
d <- data.frame(a = rnorm(5))
subset(d, b > 0)
## Error in eval(expr, envir, enclos) : object 'b' not found
如果使用自定义评估,也会发生错误。
get("var", "package:stats") #returns the var function
get("var", "package:utils")
## Error in get("var", "package:utils") : object 'var' not found
在第二种情况下,当R查看utils
包的环境时,找不到var
函数,因为utils
比search
列表低stats
}}。
在更高级的用例中,您可能希望阅读:
答案 1 :(得分:3)
让我们讨论一下未找到&#34;对象的原因&#34;除了解释它的含义之外,还可以在R中抛出错误。它对许多人来说意味着什么是显而易见的:至少根据R解释器,有问题的变量尚未定义,但如果你在代码中看到你的对象,可能有多种原因导致这种情况发生:< / p>
检查声明的语法。如果您在以后的调用语句中输错了一个字母或使用大写而不是小写,那么它就不会与原始声明匹配,并且会发生此错误。
您是否在笔记本或降价文档中收到此错误?在运行调用变量的当前单元格之前,您可能只需要重新运行具有声明的早期单元格。
您是否正在尝试编织R文档,并且在运行单元格时变量可以找到,但在编织单元格时却找不到?如果是这样 - 那么你想检查我在下面提供的片段,以找出触发此错误的可能副作用:
{r sourceDataProb1, echo=F, eval=F}
# some code here
以上片段来自R markdown单元格的开头。如果eval和echo都设置为False,则在尝试编织文档时会触发错误。澄清。我有一个用例,我将这些标志保留为False,因为我认为我不希望我的代码回显或其结果显示在我生成的markdown HTML中。但由于变量随后用于后期细胞,因此在编织过程中会出现错误。 T / F TRUE / FALSE标志的简单试错可以确定在从RStudio编织R降价文档时是否出现错误的来源。
最后:在声明变量后,您是删除变量还是从内存中清除它?
答案 2 :(得分:3)
在R中执行多行代码时,您需要首先选择所有代码行,然后单击“运行”。 当我们不选择语句并单击“运行”时,通常会出现此错误。
答案 3 :(得分:1)
我对R-studio有类似的问题。当我尝试进行绘图时,此消息正在显示。
最终,我意识到背后的原因是我对地块的“窗口”太小了,我不得不加大它才能“适合”所有地块!
希望能提供帮助