You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对比两个R dataframe指定列 生成含占比、p值的汇总对比表

解决方案

你正在使用的tableone包本身就支持多组对比功能,不需要额外安装其他包,仅需要将两个数据框合并后新增分组标识列即可实现需求,操作步骤如下:

  1. 合并数据集并新增分组标识
# 给两个数据框新增来源分组列
df1$group <- "df1"
df2$group <- "df2"

# 纵向合并两个数据集
combined_df <- rbind(df1, df2)
  1. 配置分析变量
# 填写你需要对比的特征列
listVar <- c("age_group", "gender")
# 配置分类变量列表
catVar <- listVar
  1. 生成对比统计表格
# 通过strata参数指定分组列,自动计算组间检验p值
compare_table <- CreateTableOne(
  vars = listVar,
  data = combined_df,
  factorVars = catVar,
  strata = "group"
)
  1. 输出目标格式结果
# 打印结果,默认输出两组统计值+检验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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:57:05