我需要在两个不同的组(由变量数据定义的HM和SM)中计算不同合并症(变量名data.family $ q_81_SQ00a / b / c / d / e / f ......等)的ap值。家庭$ related.unrelated)。
我用这个循环来做:
lapply(letters[c(1:12)], function(x){
fisher.test(data.family$related.unrelated,
data.family[[paste0("q_81_SQ00", x)]])
})
工作正常! 现在我想用以下代码定义不同年龄段的循环:
data.family$agegroup <- cut(data.family$age,
breaks = c(0, 18, 30, 40, 50, 60, 70, 80, 92),
labels = c("0-18", "18-29", "30-39", "40-49", "50-59", "60-69", "70-79", "80-92"),
right = FALSE)
如何在每个年龄段内运行循环?我知道我可以做到以下几点:
lapply(letters[c(1:12)], function(x){
fisher.test(data.family$related.unrelated[data.family$agegroup=='18-29'],
data.family[[paste0("q_81_SQ00", x)]][data.family$agegroup=='18-29'])
})
是否可以避免为每个年龄段重复代码并在循环中创建循环?