【问题标题】:write.xlsx in R output different data formatR中的write.xlsx输出不同的数据格式
【发布时间】:2020-03-16 02:50:45
【问题描述】:

我有使用以下方法生成的向量/表 y:

y <- (x/rowSums(x))*100

然后,我的目标是将变量 y 输出到 excel 文件中(目标是附加多个文件)

write.xlsx(y, file="Test.xlsx", asTable=TRUE, sheetName="Distribution", append=F) #Append =F as this is first sheet

然而,Excel 字段 Test.xlsx 的数据分为 2 列

我认为 write.xlsx 不能处理向量格式,所以我使用 cbind(y) 转换为矩阵。虽然这有效,但我丢失了列名。因此,检索不成功。

我认为有一个简单的解决方法,但我找不到。那么,如何在不丢失数据的情况下输出向量表 Tinto write.xlsx?

谢谢

【问题讨论】:

  • 如果我们检查 ?xlsx::write.xlsx,它会在 description 下显示:data.frame 写入 Excel 工作簿。 .尝试y &lt;- as.data.frame(y) 并将其写入 .xlsx
  • 这实际上不起作用。问题是 write.xlsx 将其写为 data.frame 会改变结构。
  • 如果您添加 aa minimal reproducible example 并提供更多信息,这将更容易为您提供帮助:不起作用...否则每个人都必须猜测什么你的实际问题是。
  • x是什么类型的对象?

标签: r vector output xlsx


【解决方案1】:

你应该可以通过添加参数row.names=F得到你想要的,即

write.xlsx(y, file="Test.xlsx", asTable=TRUE, 
           sheetName="Distribution", append=F, row.names=F)

注意,您可能需要删除 asTable 参数。我的 write.xlsx 版本包含错误。

【讨论】:

  • 嗯,我现在试过了。 row.names=F 实际上是在删除我想保留的 row.names。它不能解决问题。刚试了一下。同意删除 asTable。
  • 当时我不确定我是否理解。您想删除 1、2、3 等列,对吗?如果不是,您要删除的究竟是什么?也许模拟一个你希望看到的最终产品的例子。
  • 我不想删除任何列。我只希望输出与上面的第一个表一样。但相反,输出最终成为 2 列文件。
  • 好的,我知道了。您获得的输出文件是将整个表展平为这一列还是只是第一列数据?
  • 全部数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-06
  • 2018-11-19
  • 1970-01-01
相关资源
最近更新 更多