首页 > 其他 > 详细

【R】write.table输出数据带有行名?

时间:2021-04-18 21:55:13      阅读:22      评论:0      收藏:0      [点我收藏+]

问题

这个问题应该很常见吧。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

【R】write.table输出数据带有行名?

原文:https://www.cnblogs.com/jessepeng/p/14674137.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!