R语言 如何将QCA_mm类对象强制到表中?

mrwjdhj3  于 2023-03-10  发布在  其他
关注(0)|答案(1)|浏览(134)

我有这个表,它是QCA包的truthTable()和minimize()函数的输出

我正在努力寻找一些方法来将这个QCA_min '对象强制转换成一个flextable(或者我甚至可以使用另一个工具来创建一个表)。重要的是,我想用充分的语句来重现这个等式:

M1: ~DEV + ~STB <-> ~SURV

你有什么建议吗?
谢谢

library(QCA)
ttLCn <- truthTable(LC, ~SURV, sort.by = "incl, n", show.cases = TRUE)
pLCn <- minimize(ttLCn, include = "?", details = TRUE)
pLCn
a8jjtwal

a8jjtwal1#

这并不十分漂亮,但是您可以通过查看QCA:::print.QCA_min函数来了解值是如何创建的。

capture_qca <- function(x) {
  m <- NULL
  suppressMessages(trace(admisc::prettyString, exit = function() m <<- returnValue(), print=TRUE))
  capture.output(QCA:::print.QCA_min(x))
  list(m, x$IC$incl.cov)
}
capture_qca(pLCn)
# [[1]]
# [1] "~DEV + ~STB <-> ~SURV"
# 
# [[2]]
#      inclS PRI covS covU                      cases
# ~DEV     1   1  0.8  0.3 GR,PT,ES; IT,RO; HU,PL; EE
# ~STB     1   1  0.7  0.2    GR,PT,ES; HU,PL; AU; DE

这将返回一个包含两个元素的列表。capture_qca(pLCn)[[1]]是公式部分,capture_qca(pLCn)[[2]]是可以传递给flextable的 Dataframe 。

相关问题