【R】write.table輸出數據帶有行名?


問題

這個問題應該很常見吧。R中輸出數據框時,想要把行名和列名都輸出。如果直接輸出的話,輸出的結果列名會往前移動一位,這顯然不是我們想要的。
直接上例子:

> a = matrix(1:9, nrow = 3, ncol = 3, dimnames = list(LETTERS[1:3], LETTERS[1:3]))
> a
  A B C
A 1 4 7
B 2 5 8
C 3 6 9

直接保存:

write.table(a,"a.txt",row.names=T,col.names=T)

結果是這樣的:

"A" "B" "C"
"A" 1 4 7
"B" 2 5 8
"C" 3 6 9

解決一

出現這個問題是,行名變成列,R不知如何設置列名,但這種列名移位的行為很流氓。

如果不在意行名的名稱,那么很簡單:

write.table(a,"a.txt",col.names=NA)

結果:

"" "A" "B" "C"
"A" 1 4 7
"B" 2 5 8
"C" 3 6 9

解決二

如果想要首位有列名的話,那就只能多寫點代碼了。

write.table(data.frame(ID=rownames(a),a),"a.txt", row.names=F)

結果:

"ID" "A" "B" "C"
"A" 1 4 7
"B" 2 5 8
"C" 3 6 9

https://stackoverflow.com/questions/2478352/write-table-writes-unwanted-leading-empty-column-to-header-when-has-rownames


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM