我有大量的治疗和对照组,我需要提供比较人口比例。我正在寻找一种循环数据框架的方法,为每个类别提供测试。
示例数据:
test_data <- data.frame(
Category = c("A","A","B","B"),
Churn = c(56,46,83,58),
Other = c(180,555,144,86))
例如,比较A类(56/180至46/555)等等。
我最初的解决方案:
by(test_data, test_data$Category,
function(x) prop.test(test_data$Churn, test_data$Other))
问题:解决方案按类别输出,但提供4个样本测试而不是两个样本测试。我发现很多解决方案可以很好地遍历行,但不是一个类别。输出作为列表现在可以。
真的很感激这个的帮助!
答案 0 :(得分:1)
您的by()
功能不正确。您没有使用传入的x
值。通过使用原始变量名称(test_data
),没有数据是每个by()
调用的子集。尝试
by(test_data, test_data$Category,
function(x) prop.test(x$Churn, x$Other))