全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2248 3
2008-06-02

对每一行做卡方检验。
在样本较小时(<5),需要用Fisher精确检验来作独立性检验。
如果在data.frame中有的个数小于5,要用if 语句进行筛选。
test.txt如下:

aa   bb   cc   dd
45   24   55   76
85   52   15   48
12   41   88   59
45   14   55   86
78   25   22   75
60   3   32   11
....

最后一行是添加上验证fisher.test的
请问:如何用条件语句。
test<-read.table(file='test.txt')
result <- numeric()
for(i in 1 : nrow(test)){  
if (test$aa>4 && test$bb>4 && test$cc>4 && test$dd>4)
result<-chisq.test(matrix(unlist(test[i,]),ncol=2,byrow=T),correct=F)$p.value

else
result<-fisher.test(matrix(unlist(test[i,]),ncol=2,byrow=T))$p.value

}

结果不对。请帮帮忙,谢谢。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2008-6-2 22:56:00

I add some trivial modifications on the code :

result <- numeric()

for(i in 1 : nrow(test)){  
if (test$aa>4 && test$bb>4 && test$cc>4 && test$dd>4)
result<-chisq.test(matrix(unlist(test[i,]),ncol=2,byrow=T),correct=F)$p.value

else
result<-fisher.test(matrix(unlist(test[i,]),ncol=2,byrow=T))$p.value

# And result is

> result
[1] 1.785716e-03 5.076277e-07 3.377813e-06 1.534920e-06 6.445038e-14
[6] 2.820388e-03

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-6-3 09:55:00
多谢,看来我得多学习了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-6-3 10:46:00
&nbsp; 强人太多了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群