如何从我使用arsenal包比较2个数据帧生成的表格中将值从R导出到Excel?

问题描述 投票:0回答:1

我正在尝试构建一个比较 2 个数据框的报告。我正在使用

comparedf
包中的
arsenal
。问题是,当我导出从此包生成的结果时,包含我的结果的 Excel 文件被报告为丢失。

这是示例,假设我有以下数据框:

df1 <- data.frame(id = c("a", "b", "c", "d","e"),
                  var = c(1, 2, 3, 4, 5),
                  var2 = c(1,2,3,4,5))
df2 <- data.frame(id = c("a", "b", "c", "d","e"),
                  var =c(1,3,4,2,5),
                  var2 = c(1,2,4,3,5))

然后使用

comparedf
我通过比较不匹配值生成另一个数据框:

summary(comparedf(df1, df2, by="id"))

Table: Differences detected

var.x   var.y   id   values.x   values.y    row.x   row.y
------  ------  ---  ---------  ---------  ------  ------
var     var     b    2          3               2       2
var     var     c    3          4               3       3
var     var     d    4          2               4       4
var2    var2    c    3          4               3       3
var2    var2    d    4          3               4       4

我使用以下代码捕获该表:

vec1 <- summary(comparedf(df1, df2, by="id"))
diftable <- as.data.frame(vec1$diffs.table)

我将表格导出为 Excel 文件:

library(writexl)
write_xlsx(diftable, "example.xlsx")

但是,这些值在 Excel 文件中的显示方式是这样的:

我不明白为什么会发生这种情况?为什么出口会把价值变成NA?

r compare export-to-excel
1个回答
0
投票

您从 vec1$diffs.table 检索到的 df 有两个变量,它们实际上是嵌套列表。 使用 {tidyr},尝试:

library(tidyr)
diftable <- vec1$diffs.table |> unnest(cols = c(values.x, values.y))
© www.soinside.com 2019 - 2024. All rights reserved.