如何在R中直接基于y$R和y$T比较T类别间R=1的比例?
问题描述
我有如下数据框:
x <- data.frame(T=c("I","I","C","C"), R=c(1,0,1,0), nb_times = c(33,14,42,5)) y <- data.frame(lapply(x, rep, x$nb_times))
我想要比较T的两个类别中R取值为"1"的比例。我知道可以通过提供T每个类别中"1"的数量和总个体数来使用prop.test,但更希望直接基于y$R和y$T进行操作。
解决方案
直接基于数据框y,你可以利用table()生成T与R的列联表,再将其传入prop.test()完成比例比较:
# 生成列联表并执行比例检验 prop.test(table(y$T, y$R))
prop.test()会自动解析列联表的结构:行对应T的两个类别,列对应R的取值(1和0),进而对两类中R=1的比例做显著性检验。运行后会输出检验统计量、p值以及比例差的置信区间等结果。
如果需要单独查看列联表,也可以分步操作:
tab <- table(y$T, y$R) print(tab) prop.test(tab)
内容的提问来源于stack exchange,提问作者Ángel
相关产品推荐
相关产品推荐

