如何将QCA真值表对象转换为数据集或tibble?
问题
我正在使用SetMethods包中的SCHF数据集开展训练,需要将真值表转换为数据集。通过QCA包的truthTable()函数生成了针对EXPORT结果的真值表对象TT_y,尝试用as.data.table()转换该对象失败,希望获取可行的替代转换方法。
相关代码:
library(QCA) library(SetMethods) data(SCHF) # 获取结果存在时的真值表: TT_y <- truthTable(SCHF, outcome = "EXPORT", conditions = c("EMP","BARGAIN","UNI","OCCUP","STOCK", "MA"), incl.cut = .9, complete = TRUE, PRI = TRUE, sort.by = c("out", "incl", "n"))
失败尝试:
table = as.data.table(TT_y) table
解决方案
QCA包生成的truthTable对象是特殊的S3类对象,直接调用as.data.table()无法识别转换。你可以用以下两种可行方法完成转换:
方法1:先转成data.frame再转data.table
借助as.data.frame()先将真值表对象转为标准数据框,再转换为data.table格式:
library(data.table) dt_table <- as.data.table(as.data.frame(TT_y)) dt_table
方法2:直接提取真值表核心数据
truthTable对象的tt属性存储了完整的真值表数据,直接提取该部分再转换即可:
library(data.table) dt_table <- as.data.table(TT_y$tt) dt_table
两种方法都能得到包含条件组合、频数、一致性等所有真值表字段的data.table数据集,可按需选择使用。
内容的提问来源于stack exchange,提问作者12666727b9
相关产品推荐
相关产品推荐

