如何将表从R写入Excel

时间:2013-10-02 13:37:47

标签: r excel

我正在尝试将R中的表写入Excel。以下是一些示例代码:

library(XLConnect)
wb     <- loadWorkbook("C:\\Users\\Bob\\Desktop\\Example.xls", create=TRUE)
output <- as.table(output)
createSheet(wb, name="Worksheet 1")
writeWorksheet(wb, output, sheet="Worksheet 1")
saveWorkbook(wb)

但似乎writeWorksheet函数将表转换为数据帧。这使得数据看起来混乱且未格式化。我希望保留表结构。我该如何修改上面的代码?

1 个答案:

答案 0 :(得分:0)

这里的问题是writeWorksheet将表对象转换为数据框。发生的方式是R基本上将其“融化”为长格式,而表格对象通常以“宽”格式打印到控制台。

这有点令人讨厌,但您通常必须手动将表格转换为与您之后的格式相匹配的数据框架。一个例子:

library(reshape2)
tbl <- with(mtcars,table(cyl,gear))
> tbl
   gear
cyl  3  4  5
  4  1  8  2
  6  2  4  1
  8 12  0  2
> as.data.frame(tbl)
  cyl gear Freq
1   4    3    1
2   6    3    2
3   8    3   12
4   4    4    8
5   6    4    4
6   8    4    0
7   4    5    2
8   6    5    1
9   8    5    2
> tbl_df <- as.data.frame(tbl)
> final <- dcast(tbl_df,cyl~gear,value.var = "Freq")
> final
  cyl  3 4 5
1   4  1 8 2
2   6  2 4 1
3   8 12 0 2
> class(final)
[1] "data.frame"

然后您应该能够将那个数据框写入Excel工作表而没有任何问题。