0

describeBy我有一个大型数据框,我使用库中的多种方式对其进行总结,psych如下所示:

library(tidyverse)
library(openxlsx)
library(psych)
.
.
.
 # Describe by Region
  lst1 <- describeBy(df[QUESTIONS], df[REGION_DESCRIPTOR])

  # Describe by Doctor
  lst2 <- describeBy(df[QUESTIONS], df[CARE_DESCRIPTOR])

然后我创建一个新工作簿

  wb = createWorkbook()

并开始尝试将 lst1、lst2、.... 写入其中,每个工作表一个项目:

  addWorksheet(wb, REGION_DESCRIPTOR)
  writeData(wb, REGION_DESCRIPTOR, lst1)

  addWorksheet(wb, CARE_DESCRIPTOR)
  writeData(wb, CARE_DESCRIPTOR, lst2)

不幸的是,我收到一条错误消息:

Error in as.data.frame.default(x, stringsAsFactors = FALSE) : 
  cannot coerce class ‘c("psych", "describeBy")’ to a data.frame

如何使用 将每个describeBy对象写入工作表openxlsx?我尝试过使用writexl,虽然它有效,但我对它将生成的每个摘要写入不同的工作表这一事实不满意describeBy。由于我有近十几个describeBy,每个都有 3-5 个类别,这很快变得笨拙。

预先感谢您的帮助

托马斯飞利浦

4

1 回答 1

1

输出的对象describeBy是 a list。我们可以将rbind它们放到单个矩阵或 data.frame 中,它应该可以工作

do.call(rbind, describeBy(mtcars[, 'mpg'], mtcars[, 'vs']) )
于 2020-08-07T16:26:48.123 回答