【发布时间】:2017-05-13 11:22:25
【问题描述】:
我有一个包含 1o 个问题(Q1-Q10)的数据集。我想提取成对 Stuart-Maxwell 测试的 P 值,并将它们打印在一个带有列名标题的矩阵中,这样我可以检测哪个 P 值指的是哪个成对比较。我从专家那里得到了如何运行测试和提取结果的帮助,我试图用标题制作矩阵,但我失败了。如果有人可以在下面修改我的代码,我将不胜感激。
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
Labels<- names(data)
# Matrix to store the result
enter code here
groups <- unique( Labels )
result <- matrix(NA, nc=length(groups), nr=length(groups))
colnames(result) <- rownames(result) <- groups
# Loop
for( g1 in groups ) {
for( g2 in groups ) {
result[ g1, g2 ] <-
sapply(labels <-combn(groups, 2, simplify = FALSE), function(i) {
require(irr)
xtab <- table(data[,i[1]], data[,i[2]])
test <- try(stuart.maxwell.mh(xtab))
ifelse(class(test) == "try-error", NA, test$p)
})
}
}
result
【问题讨论】:
标签: r testing matrix header multiple-columns