如何阻止R将X添加到数字列标签之前?

bra*_*ter 3 r matrix

我有一个带有数字列标签的矩阵,例如:

1,2,3
1,2,3
4,5,6
7,8,9
Run Code Online (Sandbox Code Playgroud)

当我将这些数据加载到R中的变量并使用as.matrix(read.table("myfile", sep=",", header=TRUE)并打印生成的矩阵时,列标题前面加上了X,这个额外的字符出现在图表等中:

     X1     X2     X3
[1,]  1      2      3
[2,]  4      5      6
[3,]  7      8      9
Run Code Online (Sandbox Code Playgroud)

我怎么能阻止这种行为?

Mat*_*rde 7

供应check.names=FALSEread.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`
Run Code Online (Sandbox Code Playgroud)

此外,调用transform,如transform(my.df,1 =1:3),将其标准化的形式(取代列名X1,X2,X3),因为transform调用data.frame()其默认参数.

设置check.names=FALSE虽然在某些非常特殊的情况下很有用,但允许重复的列名和非语法名称,这可能会在以后引起任何数量的问题.使用时要小心.

data.frame()check.names=TRUE默认情况下使用,因为在许多上下文中R尝试将数据框的列名解释为它们自己的变量; 如果列名称不是语法上有效的名称(请参阅参考资料?make.names),或者如上所述使用反向标记进行保护,则会在这些上下文中发生错误.