R:在编写文本文件时看起来很漂亮

时间:2014-01-10 14:51:53

标签: r write.table

我遇到了问题。我想写一个文本文件,但我不能让列名显示在列的上方。

一个例子:

dfr <- data.frame(Name=c("Adam Jones", "Brian Smith", "Peter Stevensson"),
Salary=c(12345, 6789, 234567), Tax=c(2345, 1233, 5263))
> dfr
          Name Salary  Tax
1       Adam Jones  12345 2345
2      Brian Smith   6789 1233
3 Peter Stevensson 234567 5263

我试过了:

  

write.table(dfr,file =“S:/s2609/sisse/minedata/dfr.txt”,   + quote = FALSE,append = FALSE,col.names = TRUE,row.names = FALSE)

fdfr <- apply(dfr, 2, format, width = 14, justify = "left")
> write.table(fdfr, file = "S:/s2609/sisse/minedata/dfr.txt",
+ quote = FALSE, append = FALSE, col.names = TRUE, row.names = FALSE)

  

write.fwf(dfr,file =“S:/s2609/sisse/minedata/dfr.txt”,width = c(16,16,16),justify =“left”,append = FALSE,colnames = TRUE ,rownames = FALSE)

  

dfr.m&lt; - as.matrix(dfr)

 > capture.output( print(dfr.m, print.gap=3, quote = FALSE), file = "S:/s2609/sisse/minedata/dfr.txt")

这很好地集中了列名,但留下了“行名”:

 [1,]
 [2,]
 [3,]
 [4,]

有没有办法让列名在文本文件中很好地显示,或者使用capture.output()删除这些“行名”?

感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

1)试试这个:

library(Hmisc)
print.char.matrix(dfr, cell.align = "cen", col.txt.align = "cen", 
         col.names = TRUE, row.names = FALSE, 
         hsep = " ", vsep = "", csep = "")

给出:

       Name       Salary  Tax 
    Adam Jones     12345 2345 
    Brian Smith     6789 1233 
 Peter Stevensson 234567 5263 

2)

print.char.matrix(dfr, cell.align = "cen", col.txt.align = "cen", 
                              col.names = TRUE, row.names = FALSE)

给出:

+----------------+------+----+
|      Name      |Salary| Tax|
+----------------+------+----+
|   Adam Jones   | 12345|2345|
+----------------+------+----+
|   Brian Smith  |  6789|1233|
+----------------+------+----+
|Peter Stevensson|234567|5263|
+----------------+------+----+