通过循环R中的列运行多个Stuart-Maxwell测试

时间:2017-05-12 09:49:28

标签: r matrix multiple-columns crosstab

我有20个列,每个列代表一个问题(个人资料),而我的调查中的受访者(在主题设计中)必须选择5个选项中的一个(从A到E的缩写比例)。 现在我想统计检验答案的分布在不同的问题(配置文件)中是否不同。为了这样,我必须在可能成对比较配置文件的交叉表上运行Stuart Maxwell测试。

如果我只进行一次比较,那么过程非常简单: -1例如,在Q1和Q2上制作响应的交叉表(tab1) 2-执行SM(stuart.maxwell.mh(tab1))测试" irr"包。 3-提取p值

但这样做超过20个问题就太费时了。 我需要一个函数或循环来进行测试并提取p.values并将它们打印在矩阵中供我使用。 有什么帮助吗?

data <- data.frame(Q1=sample(1:5, 20, replace=T),
               Q2=sample(1:5, 20, replace=T),
               Q3=sample(1:5, 20, replace=T),
               Q4=sample(1:5, 20, replace=T),
               Q5=sample(1:5, 20, replace=T),
               Q6=sample(1:5, 20, replace=T),
               Q7=sample(1:5, 20, replace=T),
               Q8=sample(1:5, 20, replace=T),
               Q9=sample(1:5, 20, replace=T),
               Q10=sample(1:5, 20,replace=T) )  #fake data

choose(n=10, k=2)   # possible pairwise comparisons  n!/k!(n-k)!

library(irr)   # to run Stuart-Maxwell test
crosstab1<-table(data$Q1,data$Q2)
test1<-stuart.maxwell.mh(crosstab1)    
p.value1 <- (test1$p)

0 个答案:

没有答案