21

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

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

4

2 回答 2

31

为我工作

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
于 2010-08-06T13:19:32.740 回答
24

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

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

如果TRUE然后检查数据框中的变量名称,以确保它们是语法上有效的变量名称并且不重复。如有必要,它们会被调整(按make.names),这样它们就可以了。

来自?make.names

语法上有效的名称由字母、数字和点或下划线字符组成,并以字母或点开头,后跟数字。X[...]如有必要,将在前面加上字符“ ”。

于 2010-08-06T10:57:08.100 回答