R 数字作为数据帧的列名

R 数字作为数据帧的列名,r,dataframe,names,R,Dataframe,Names,R不允许我将数字作为数据帧的列名,这有什么原因吗 还注意到,如果我使用data.frame(XX),它会在前面有数字的所有列标题中添加一个X。是,因为R不允许对象的名称以数字开头。如果要使用data.frame调用attach(),这将导致一些问题 data.frame(和read.table)函数具有check.names参数(默认值为TRUE) 如果TRUE则检查数据框中变量的名称,以确保它们在语法上是有效的变量名称,并且不重复。如有必要,可对其进行调整(通过make.names)以使其正常

R不允许我将数字作为数据帧的列名,这有什么原因吗


还注意到,如果我使用
data.frame(XX)
,它会在前面有数字的所有列标题中添加一个
X

是,因为R不允许对象的名称以数字开头。如果要使用data.frame调用
attach()
,这将导致一些问题

data.frame
(和
read.table
)函数具有
check.names
参数(默认值为
TRUE

如果
TRUE
则检查数据框中变量的名称,以确保它们在语法上是有效的变量名称,并且不重复。如有必要,可对其进行调整(通过
make.names
)以使其正常工作

?生成.names

语法上有效的名称由字母、数字和点或下划线字符组成,以字母或点开头,后面不跟数字。[…]如有必要,字符“
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

是的,我昨天也解释了很多关于数据帧命名的问题。这有什么原因吗?或者这只是没人真正在意的事情?把X放在任何我想成为头球的数字前面没什么大不了的,但我只是想知道为什么R不让我,你还是不明白。重新阅读Shane的答案,思考
attach()
,并了解为什么必须使用变量名。正如马雷克所展示的,你可以做到,但这并不意味着你应该做到。谢谢。我理解数字,但似乎有些unicode文本是不允许的。当我使用框架只是为了格式化时,你的建议会派上用场。