供应check.names=FALSE给read.table.
请注意,当data.frames 具有诸如此类的非标准名称时,对其列的任何引用都必须用刻度线括起来,例如
my.df <- read.table(text='1,2,3
1,2,3
4,5,6
7,8,9', header=TRUE, sep=',', check.names=FALSE)
my.df$`1`
with(my.df, `1`)
attach(k)
`1`
此外,对 1 的调用transform将transform(my.df,使用其标准化形式 ( , , )=1:3)替换列名,因为使用其默认参数进行调用。X1X2X3transformdata.frame()
设置check.names=FALSE虽然在某些非常特殊的情况下很有用,但将允许重复的列名和非语法名称,这可能会在以后导致任何数量的问题。使用时要小心。
data.frame()默认情况下使用check.names=TRUE,因为在许多情况下,R 试图将数据框的列名解释为它们自己的变量;如果列名不是语法上有效的名称(请参阅 参考资料?make.names),或者如上所述受反引号保护,则在这些上下文中将发生错误。