2016-05-22 3 views
0

Ich habe eine Excel-Datei mit 25 Spalten und 300 Zeilen, jede Spalte hat die gleiche Anzahl von Zeilen. Ich muss Cocharans Test mit jeder Spalte im Vergleich zu jeder anderen Spalte durchführen.R Cocharans Test

library(readxl) 
library(outliers) 

sheet2=read_excel("C:/Users/Sharas/Desktop/data.xlsx", sheet = 2) 

for(i in 1:length(sheet2)) { 
    for(j in i:length(sheet2)) { 
    cochran.test(sheet2[[i]]~sheet2[[j]], sheet2) 
    } 
} 

Ich erhalte diese Fehlermeldung:

Error in split.default(X, group) : first argument must be a vector 

typeof kehrt: Doppel

print(typeof(sheet2[[i]]) 
+0

Sie müssen die tatsächlichen passieren Formel zu der 'cochran.tst()' -Funktion. So etwas wie 'cochran.test (x ~ y, sheet2)' wo 'x' und' y' Spaltennamen sind? – Psidom

Antwort

1

Möglicherweise dies wird Ihnen näher kommen:

# Make data.frame with possible combinations of columns. 
d <- sheet2 
names <- colnames(d) 
name.combinations <- subset(merge(names, names), x != y) 

# Run test for each combination, build formula from string. 
res <- mapply(function(x, y) { 
    cochran.test(as.formula(paste(x, " ~ ", y, sep = "")), d) 
}, name.combinations$x, name.combinations$y)