全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
7581 3
2008-05-21
想批量做卡方检验。
test.txt如下:
45   24   55   76
85   52   15   48
12   41   88   59
45   14   55   86
78   25   22   75
...
...
想将每行四个数提取出来chisq.test
第三列和第四列分别是100与第一列和第二例的差。


test<-read.table(file='test.txt')
for (i in 1:nrow(test)) {
a<-test[i,1:2]
b<-test[i,3:4]
e<-rbind(a,b)
dim(e)<-c(2,2)
rersult<-chisq.test(e,correct=F)$p.value
}

出现错误:
Error in match.names(clabs, names(xi)) > : names do not match previous names

请问:如何将a和b组合进行卡方分析?
谢谢。

二维码

扫码加我 拉你入群

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

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

全部回复
2008-5-22 09:41:00

刚试了下,以下这段程序是可以运行的。和楼主不同之处在于:在循环前增加了对result的定义,即result<-c()

test<-matrix(c(45,24, 55,76,
85,52,15,48,
12,41,88,59),byrow=T,nrow=3)

result<-c()

for (i in 1:nrow(test)) {
a<-test[i,1:2]
b<-test[i,3:4]
e<-rbind(a,b)
dim(e)<-c(2,2)
result<-chisq.test(e,correct=F)$p.value
}

二维码

扫码加我 拉你入群

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

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

2008-5-23 12:32:00

谢谢。

这样也可以。

test<-read.table(file='test.txt')
test<-as.data.frame(test)
result<-numeric()
for (i in 1:nrow(test)) {
  result<-chisq.test(matrix(unlist(test[i,]),ncol=2,byrow=T),correct=F)$p.value
  }

二维码

扫码加我 拉你入群

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

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

2015-3-19 10:15:45
谢谢楼主分享
二维码

扫码加我 拉你入群

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

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

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

分享

扫码加好友,拉您进群