如何对比两个R dataframe指定列 生成含占比、p值的汇总对比表
解决方案
你正在使用的tableone包本身就支持多组对比功能,不需要额外安装其他包,仅需要将两个数据框合并后新增分组标识列即可实现需求,操作步骤如下:
- 合并数据集并新增分组标识
# 给两个数据框新增来源分组列 df1$group <- "df1" df2$group <- "df2" # 纵向合并两个数据集 combined_df <- rbind(df1, df2)
- 配置分析变量
# 填写你需要对比的特征列 listVar <- c("age_group", "gender") # 配置分类变量列表 catVar <- listVar
- 生成对比统计表格
# 通过strata参数指定分组列,自动计算组间检验p值 compare_table <- CreateTableOne( vars = listVar, data = combined_df, factorVars = catVar, strata = "group" )
- 输出目标格式结果
# 打印结果,默认输出两组统计值+检验p值 print(compare_table, showAllLevels = TRUE) # 如需导出为可编辑的数据框可执行以下代码 table_result <- as.data.frame(print(compare_table, showAllLevels = TRUE, printToggle = FALSE))
可选参数调整说明
- 分类变量默认使用卡方检验,连续变量默认根据正态性选择t检验/秩和检验,可通过
CreateTableOne的testNormal/testNonNormal/testExact参数自定义检验方法 - 可通过
print函数的catDigits/contDigits参数调整百分比、数值的小数位数,添加smd = TRUE可额外输出标准化均值差指标
内容的提问来源于stack exchange,提问作者n23
相关产品推荐
相关产品推荐

