为什么导出的行名在R中总是偏1?

use*_*829 1 r

在R中,导出CSV时为什么列名总是偏离1?

x=matrix(c(1,2,3,4), nrow=2)
rownames(x) <- c("row1", "row2")
colnames(x) <- c("col1", "col2")

>x
          col1 col2
    row1    1    3
    row2    2    4

write.table(x,"/Users/username/Desktop/x.csv", sep=",")
Run Code Online (Sandbox Code Playgroud)

列名始终向左移动一列:

*The resulting CSV looks like this when opened in Excel:*
 col1   col2    
 row1   1      3
 row2   2      4

*The resulting CSV looks like this when opened in TextEdit:*
 "col1","col2"
 "row1",1,3
 "row2",2,4
Run Code Online (Sandbox Code Playgroud)

我一直有这个问题,但现在我的代码被用于专业目的,而不仅仅是玩数据,我需要弄清楚如何避免这种情况.我觉得这是一个相当容易的修复.

edd*_*ddi 7

文档为您提供了答案:

默认情况下,行名称列没有列名.如果col.names = NA且row.names = TRUE,则添加空白列名称,这是用于电子表格读取的CSV文件的约定.请注意,可以通过read.csv(file ="",row.names = 1)在R中读取此类CSV文件

因此,无论是使用write.csv或添加col.names = NAwrite.table.