【问题标题】:xlsx package saveWorkbook functionxlsx 封装 saveWorkbook 函数
【发布时间】:2017-01-05 11:50:40
【问题描述】:

我有一个数据框,我正在使用下面的代码

wb <- createWorkbook(type = "xlsx")
sheet1 <- createSheet(wb, sheetName = "sheet1")
addDataFrame(df, sheet1, col.names = TRUE, row.names = FALSE, startRow = 1)
saveWorkbook(wb, file = "filename.xlsx")

我已经通过R studio设置了目录,所以不需要明确提及。 我浏览了 write.xlsx 的文档,该文档给出了网络上常见的错误。 问题是当我下载并书写工作簿时,我看到这样的数据

Column1 Column2 Column3 Column4 Column5 Column6
c(value1,value2,……) c(value1,value2,……) c(value1,value2,……) c(value1,value2,……) c(value1,value2,……) c(value1,value2,……)

我只找到两行,第一行给出列名,第二行包含向量格式的各个列的所有值(即包含在 c() 中)。我不想 row.names = TRUE 因为它会创建一个带有行号的额外列。

同样的问题发生在 write.xlsx2 函数中 任何帮助将不胜感激。

【问题讨论】:

  • 你可以改进这个问题。请将鼠标悬停在 R 标签上 - 它要求提供一个最小的可重现示例。 Here's a guide。我建议相应地编辑您的帖子。一个好的通常会提供最少的输入数据、所需的输出数据、代码尝试包括所需的包——所有这些都可以在新的/干净的 R 会话中复制-粘贴-运行。 为什么? 它让所有人都可以更轻松地关注和参与,无需猜测。例如,df 看起来像什么 - 嵌套列表?
  • c(value1,value2,……) 通常表明您在数据框列中有列表,例如df &lt;- data.frame(x=I(list(letters[1:2], LETTERS[1:2])), y=1:2)
  • @lukeA 感谢您的帮助。我正在使用 dplyr 来处理数据。我没有意识到 dplyr 中的 class(df) 显示“grouped_df”“tbl_df”“tbl”“data.frame” 当我使用 str(df) 时,它确实在列表中显示了 data_frame 属性。但是,如果我编写 data.frame(df) 然后在 saveWorkbook 中使用它,它会按预期工作。

标签: r


【解决方案1】:

我认为问题不是在下载过程中。而是在 addDataFrame() 期间。在添加 df 时,您需要将数据框强制为列表。示例:

addDataFrame(list(df), sheet1, col.names = TRUE, row.names = FALSE, startRow = 1)

【讨论】:

    猜你喜欢
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    • 2011-12-07
    • 2010-12-03
    相关资源
    最近更新 更多