'names'属性必须与向量的长度相同

时间:2012-05-12 18:49:37

标签: r

坚持R中的错误。

    Error in names(x) <- value : 
      'names' attribute must be the same length as the vector

这个错误是什么意思?

8 个答案:

答案 0 :(得分:12)

本着@Chris W的精神,试着复制你得到的确切错误。一个例子会有所帮助,但也许你正在做:

  x <- c(1,2)
  y <- c("a","b","c")
  names(x) <- y

Error in names(x) <- y : 
  'names' attribute [3] must be the same length as the vector [2]

我怀疑你试图给一个比你的名字矢量(x)短的矢量(y)命名。

答案 1 :(得分:1)

根据您在循环中所做的事情,%in%运算符返回向量的事实可能是一个问题;考虑一个简单的例子:

c1 <- c("one","two","three","more","more")
c2 <- c("seven","five","three")

if(c1%in%c2) {
    print("hello")
}

然后发出以下警告:

Warning message:
In if (c1 %in% c2) { :
  the condition has length > 1 and only the first element will be used

如果if语句中的某些内容依赖于特定数量的元素,并且它们不匹配,那么就可以获得您看到的错误

答案 2 :(得分:0)

我看到了这样的错误,我解决了它。您的数据集中可能缺少值。每列中的观察数量也必须相同。

答案 3 :(得分:0)

我犯了这个错误的错误是试图重命名我不再在SQL中选择的循环中的列。这也可能是由于您在计划选择的列中尝试执行相同操作而导致的。确保您尝试更改的列实际存在。

答案 4 :(得分:0)

我想用以下示例解释错误:

  

名称(镜头)   [1]“ X1..1..1..1 ... 3”   名称(镜头)= c(“ ID”,“年龄”,“视线”,“散光”,“眼泪”,“阶级”)   名称(镜头)中的错误= c(“ ID”,“年龄”,“视力”,“散光”,“眼泪”,:     “名称”属性[6]的长度必须与矢量[1]的长度相同

由于许多属性不匹配而发生错误。我只有一个,但尝试添加6个名称。在这种情况下,将发生错误。参见下面正确的一个::::: >>>>

  

名称(镜头)= c(“ ID”)   名称(镜片)   [1]“ ID”

现在没有错误。

我希望这会有所帮助!

答案 5 :(得分:0)

我因为一个愚蠢的原因遇到了同样的错误,我认为是这样的:

在 R Studio 中,如果您尝试将新对象分配给现有名称,并且您当前使用 View() 打开了具有现有名称的对象,则会引发此错误。

关闭对象“查看”面板,然后它就可以工作了。

答案 6 :(得分:0)

我有这个,因为缩放的数字变量不是作为数字返回,而是作为矩阵返回。将任何转换后的变量恢复为 as.numeric(),它应该可以工作。

答案 7 :(得分:-1)

对我来说,这个错误是因为我有一些数据标题是两个名称,我将它们合并为一个名称,并且一切顺利。