R不允许我将数字作为数据框的列名有什么原因吗?
还注意到,如果我这样做data.frame(XX)
,它会X
在前面有数字的所有列标题中添加一个。
为我工作
data.frame(`1`=rnorm(3), `2`=head(letters,3), check.names=FALSE)
# 1 2
# 1 0.5019 a
# 2 1.1148 b
# 3 0.4787 c
是的,因为 R 不允许对象的名称以数字开头。如果您要attach()
使用 data.frame 调用,这会导致一些问题。
data.frame
(and read.table
) 函数有check.names
参数 (默认是TRUE
)
如果
TRUE
然后检查数据框中的变量名称,以确保它们是语法上有效的变量名称并且不重复。如有必要,它们会被调整(按make.names
),这样它们就可以了。
来自?make.names
:
语法上有效的名称由字母、数字和点或下划线字符组成,并以字母或点开头,后跟数字。
X
[...]如有必要,将在前面加上字符“ ”。