2013-07-26 17 views
1

在R中,導出CSV時爲什麼列名始終關閉1?爲什麼導出的行名在R中始終偏離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=",") 

列的名字總是轉移一列左:

*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 

我一直有這個問題,但現在我的代碼被用於專業用途,而不是隻是玩弄數據,我需要弄清楚如何避免這種情況。我有一種感覺,這是一個相當簡單的解決方案。

+0

推測實際上在輸出中有逗號?否則有別的東西你不告訴我們... – joran

+0

我打開Excel中的輸出(這是我的電腦上打開CSV的默認程序),所以沒有逗號(但我想這些逗號是什麼告訴Excel在哪裏做一個新的單元格)。 – user2588829

+0

嘗試在純文本編輯器中打開它 – Sebastian

回答

7

的文檔具有爲你解答:

默認有是行名稱的列,沒有列名。如果 col.names = NA且row.names = TRUE,則會添加一個空列名稱, 這是用於由電子表格讀取的CSV文件的約定。 注意,例如CSV文件可以作爲R由read.csv讀取(文件= 「」,row.names = 1)

所以,既可以使用write.csv或添加到col.names = NAwrite.table