Ich versuche, über ~ 60 Spalten mit dem Ziel zu iterieren, einen T-Test gewichtet nach Fall/Kontrolle Status durchzuführen und die Ausgabe als eine Liste zu erfassen. Hier ist mein Versuch so weit - beachten Sie, dass meine Datenrahmen Biomarker genannt wird, und Spalten 3-59 repräsentieren meine Variable von Interesse, durch Spalte gewichtet werden 2 (so genannte Fall):Extrahieren von Werten über die Schleife von t-Tests
tests <- list()
column_biomarkers <- colnames(biomarkers[3:59])
for (i in column_biomarkers){
tests[[i]] <- t.test(biomarkers$i[case == 1],biomarkers$i[case == 0],pool.sd=FALSE,na.rm=TRUE)
}
sapply(tests, function(x) {
c(x$estimate[1],
x$estimate[2],
ci.lower = x$conf.int[1],
ci.upper = x$conf.int[2],
p.value = x$p.value)
})
Allerdings habe ich diese Versuch führt zu folgendem Fehler:
Error in var(x) : 'x' is NULL
Jeder Rat würde sehr geschätzt werden! Ich bin neu bei Verwendung von R.
Beispieldaten:
structure(list(subject = 1:10, case = c(1L, 0L, 0L, 1L, 1L, 0L,
0L, 0L, 0L, 1L), biomarker_1 = c(308.29999, 2533.3, 2723.3, 3125.3,
853, 6442.2998, 1472.5, 170.5, 64.5, 2624.8), biomarker_2 = c(4930.7998,
2401, 5158.5, 6526, 3774.2, 5753, 1955.2, 1332.2, 1296.8, 5859.2998
), biomarker_3 = c(4810, 3279.5, 7929.5, 8353, 4074.2, 7940.5,
1545.7, 2189.2, 1488.7, 6352.5)), .Names = c("subject", "case",
"biomarker_1", "biomarker_2", "biomarker_3"), row.names = c(NA,
10L), class = "data.frame")
Nicht sicher, warum Sie einen Fehler haben, aber alle 'Tests [[]]] sollten identisch sein, da Sie' i' nicht im 't.test()' Aufruf verwenden – HubertL
whoops - sollten Biomarker $ i sein ... Entschuldigung, danke. Ich habe bearbeitet, oben ist der Code, der einen Fehler erzeugt. – AMS
Mögliches Duplikat von [Wie kann ich einen paarweisen t.test in R über mehrere unabhängige Vektoren hinweg durchführen?] (Http://stackoverflow.com/questions/14745379/how-can-i-perform-a-pairwise-t-test -in-r-über-multiple-independent-vectors) – JackeJR