没有列名的data.frames的奇怪行为

alk*_*989 11 r dataframe

没有列名的data.frames会出现意外行为.以下按预期工作:

df <- data.frame(a = 1:5, b = 5:9)
df + 1
##   a  b
## 1 2  6
## 2 3  7
## 3 4  8
Run Code Online (Sandbox Code Playgroud)

但是如果我们删除列名,那么行为很奇怪:

names(df) <- NULL
df + 1
## data frame with 0 columns and 0 rows
Run Code Online (Sandbox Code Playgroud)

如果使用unname,删除名称,也会发生同样的情况setNames.任何关于为什么会发生这种情况的想法,并且(出于某种原因)预期的行为?

编辑:所以有文件证明无名的data.frames有不支持的结果(感谢@neilfws,@ Suren),但我也对这种情况发生的原因感兴趣.我试图找到实际的c(?)代码,使这个简单的例子制动.

Sur*_*ren 7

在文档中data.frame,它说:

列名称应为非空,并且尝试使用空名称将具有不受支持的结果.

因此,如果列名为空,则预期结果可能不是期望的结果.