数字作为数据框的列名

Nat*_*axe 18 r names dataframe

有没有理由为什么R不允许我将数字作为我的数据帧的列名?

还注意到,如果我这样做,data.frame(XX)则会X在前面添加一个包含数字的列标题.

Mar*_*rek 26

适合我

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
Run Code Online (Sandbox Code Playgroud)


Sha*_*ane 20

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

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

如果TRUE那么检查数据框中变量的名称,以确保它们在语法上是有效的变量名,并且不会重复.如果有必要,他们会调整(按make.names)它们.

来自?make.names:

语法上有效的名称由字母,数字和点或下划线字符组成,并以字母或点开头,后面没有数字.[...] X必要时会加上字符" ".

  • 你*仍然*不明白.重新阅读Shane的答案,想想`attach()`并开始意识到为什么这些必须变量名.正如马雷克所示,你*可以*做到但这并不意味着你应该*. (2认同)