1

我正在尝试将 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函数将表转换为数据框。这使数据看起来混乱且未格式化。我希望保留表结构。我将如何修改上面的代码?

4

1 回答 1

1

这里的问题是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 工作表。

于 2013-10-02T14:29:08.037 回答