R Error: names() applied to a non-vector

R Error: names() applied to a non-vector

我有一段代码只在第一次 运行 时产生错误。奇怪的是,如果我第二次 运行 它,我没有得到任何错误(疯狂定义?)。此外,错误并不总是出现在同一位置,我的意思是,如果我添加几行注释,错误消息将在注释之后打印,而不是在特定指令之后打印。

我无法提供可重现的示例,因为我不知道错误的确切来源。错误如下:

Error in names(frame)[names(frame) == "x"] <- name : 
  names() applied to a non-vector

我应该在我的代码中指定我没有 - 至少明确地 - names() 函数。

我有同样的错误,它是我编写的特定函数的错误。每当我加载函数时它都会抛出错误,即使我注释掉了函数中的所有代码也是如此。我发现更改函数的变量名可以停止错误。我唯一的猜测是存在一些奇怪的变量名冲突。

这是一个棘手的错误。我能够找到原因,似乎是 R 有一个与缓存的函数同名的对象。如果使用 IDE(例如 RStudio)作为 View(df) 的选项卡,则最有可能出现这种情况。除非选项卡关闭,即使 运行 没有代码的函数也会给你这个错误。同样,如果选项卡未关闭,即使删除所有对象或进行垃圾回收也无法解决问题。一旦标签关闭,错误就会消失。

只需添加

 as.vector(dataframe)

这有效。

我有同样的错误。其原因与我很久以前保存的名为 "df" 的文件有关,该文件干扰了当前变量,也称为 df.

但是解决方法很直接:找到有问题的行,通过运行代码的第一行,然后清除全局环境,然后再次运行。如果没有错误发生,则添加下一行,依此类推,直到发生错误。然后,更改该行中的变量名称。

我也有同样的错误。在我的例子中,原因是函数内部还有另一个与函数同名的数据框。我猜 R 也会在类型不匹配时抛出此错误。在我的例子中,名称首先被读取为一个函数。当 R 再次遇到相同的名称时,它会寻找一个函数,但却找到了一个数据框。

我只需要更改其中一个的名称,错误就消失了。

每当我尝试通过 remove(list = ls()) 删除所有内容时,此错误也会出现在我的代码中。在我的例子中,问题是我有一个名为 df (datatype = data.frame) 的对象,并且还打开了 df 的先前版本的 View。关闭 View 后错误消失。