R:当数据框包含字符串和数字时如何使用writexl

R: how to use writexl when data frame contains strings and numbers

我是 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 获得此输出?

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

library(openxlsx)
wb <- createWorkbook()
addWorksheet(wb, "Sheet1")
writeData(wb, "Sheet1", df, colNames = FALSE)
saveWorkbook(wb, "test.xlsx", overwrite = TRUE)

我会在包的 github 回购中提出一个问题: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 在你的代码中有 list-columns:

> 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

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