2

我有一个正在发生的问题。我想编写一个文本文件,但我无法让列名很好地居中显示在列上方。

一个例子:

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 =错误的)

和:

dfr.m <- 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() 删除这些“行名”?

任何帮助表示赞赏!

4

1 回答 1

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|
+----------------+------+----+
于 2014-01-10T15:43:49.907 回答