Ich habe einen Datensatz mit 1o Fragen (Q1-Q10). Ich möchte P-Werte von paarweisen Stuart-Maxwell-Tests extrahieren und sie in einer Matrix mit Kopfzeilen von Spaltennamen so drucken, dass ich erkennen kann, welcher P-Wert sich auf welchen paarweisen Vergleich bezieht. Ich habe Hilfe von einem Experten erhalten, wie man den Test durchführt und die Ergebnisse extrahiert, und ich habe versucht, die Matrix mit Überschriften zu machen, aber ich scheitere. Ich schätze es, wenn jemand meinen Code unten ändern kann.Wie Matrix der p-Werte für mehrere Stuart-Maxwell-Test in R erhalten? Fragen Sie
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