2

我是 R 新手,我正在尝试将数据保存到 xlsx 文件。我正在使用 writexl(xlsx 引起了麻烦)。

当我尝试使用 write_xlsx 时,似乎在我的数据框中包含字符串和整数会导致问题。

我在这里重现了这个问题:

library(writexl)

matrix <- matrix(1,2,2)
block <- cbind(list("ones","more ones"),matrix)
df <- data.frame(block)

data = list("sheet1"=df)

write_xlsx(data, path = "data.xlsx", col_names = FALSE, format_headers = FALSE)

文件 data.xlsx 正确包含“sheet1”,但它是空白的。我想

那些 1 1

更多的 1 1

有什么方法可以使用 write_xlsx 获得此输出?

4

2 回答 2

1

我通常使用openxlsx包。尝试修改以下代码:

library(openxlsx)
wb <- createWorkbook()
addWorksheet(wb, "Sheet1")
writeData(wb, "Sheet1", df, colNames = FALSE)
saveWorkbook(wb, "test.xlsx", overwrite = TRUE)
于 2019-06-25T21:21:01.230 回答
1

我会在包的 github repo 上提出一个问题:https ://github.com/ropensci/writexl/issues 。

这样做:

df <- data.frame(
  X1 = c("ones", "more ones"),
  X2 = c(1, 1),
  X3 = c(1, 1)
)

write_xlsx(df, path = "data.xlsx", col_names = FALSE, format_headers = FALSE)

工作正常。我会说这是因为df在您的代码中有列表列:

> str(df)
'data.frame':   2 obs. of  3 variables:
 $ X1:List of 2
  ..$ : chr "ones"
  ..$ : chr "more ones"
 $ X2:List of 2
  ..$ : num 1
  ..$ : num 1
 $ X3:List of 2
  ..$ : num 1
  ..$ : num 1

不确定该软件包是否具有此功能。

于 2019-06-25T21:37:07.823 回答