您好我正在尝试计算一组数据的Chi Sq值。每组有6或7行,并按标志分组。我有619行和91个标志。因此,对于每个组,我将获得chisq和p值。我想要所有91套的输出,所以我可以将它们粘贴到Excel中。我没有太多的编码,但尝试了一个循环,最终只给我标志的最后一个值。据说我有50左右的警告,但没有按要求放弃输出。以下是摘录:
transaged <- transform(transaged, flag = as.numeric(interaction(HO_GROUP_CODE,START_DATE, drop=TRUE)))
for (i in 1:max(transaged$flag))
{
survey=as.data.frame(rbind(transaged$CHO,transaged$HO))[transaged$flag==i]
chisq.test(survey)
Sys.time()
chisq.test(survey)$p.value
result <- cbind(rownames(transaged),chisq.test(survey)$p.value)
}
我希望输出类似于 1. Chisq 21.34 pvalue 0.9 2. chisq 12.34 pvalue 0.89 等到91
我还希望rownames是转换后的数据框中我的第一列和第二列的组合,因为该标志是通过对它们进行分组而创建的。
所以应该是这样的:
HO_GROUP_CODE(1st entry),START_DATE(1st entry) Chisq 21.34 pvalue 0.9
HO_GROUP_CODE(1st entry),START_DATE(2nd entry) Chisq 21.34 pvalue 0.89
HO_GROUP_CODE START_DATE AGE HO HO*
1 12th Oct 4 12 23
1 15th Nov 5 23 34
2 16th Dec 6 23 35
.....
HO和HO *是chi测试的比较,而不同的年龄按HO GROUP CODE和START DATE分组。
还请建议我是否可以避免循环。我在这里找到了一些帮助,但无法与我需要的东西联系起来。如果有类似的线程请重定向我。非常感谢!
答案 0 :(得分:0)
以下是我问过的问题的解决方案
/index.php/400/400