[英]Stop R write.xlsx from turning wide data to long
我需要將數據輸出到xlsx,並且XLSX軟件包似乎已被廣泛使用。
但是,使用它似乎可以將寬數據轉換為長數據。 在導出到Excel時,我想保持數據范圍廣。
library(xlsx)
myTable <- xtabs(mpg~carb+cyl, mtcars)
myTable
write.xlsx(myTable, "myFile.xlsx")
上面的代碼是一個最小的示例,將演示此問題。
控制台將輸出myTable,如下所示:
> myTable
cyl
carb 4 6 8
1 137.9 39.5 0.0
2 155.4 0.0 68.6
3 0.0 0.0 48.9
4 0.0 79.0 78.9
6 0.0 19.7 0.0
8 0.0 0.0 15.0
但是,Excel文件具有長格式的相同數據,如下所示:
carb cyl Freq
1 1 4 137.9
2 2 4 155.4
3 3 4 0
4 4 4 0
5 6 4 0
6 8 4 0
7 1 6 39.5
8 2 6 0
9 3 6 0
10 4 6 79
11 6 6 19.7
12 8 6 0
13 1 8 0
14 2 8 68.6
15 3 8 48.9
16 4 8 78.9
17 6 8 0
18 8 8 15
如果有人可以幫助我了解為什么會發生這種情況或如何糾正這種情況,我將不勝感激。
在?write.xlsx
的“詳細信息”部分中,它提到:
如果x不是data.frame,它將轉換為1。
我猜想是使用as.data.frame
做到的。
當使用as.data.frame
將table
對象轉換為data.frame
,表的原始結構將更改為“長”格式,這就是您在此處看到的。
要解決此問題,請使用as.data.frame.matrix
,如下所示:
write.xlsx(as.data.frame.matrix(myTable), "myFile.xlsx")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.