坚持R中的错误。
Error in names(x) <- value :
'names' attribute must be the same length as the vector
这个错误是什么意思?
答案 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)
对我来说,这个错误是因为我有一些数据标题是两个名称,我将它们合并为一个名称,并且一切顺利。