Zuerst sehe ich hier keinen data.frame. a
und c
scheinen Vektoren zu sein. Ich nehme an, dass diese beiden Vektoren die Länge 271 haben und Sie die letzten 11 Elemente ignorieren wollen. So können Sie zuerst diese Elemente wegzuwerfen:
a2 <- a[1:260]
c2 <- c[1:260]
Jetzt können Sie einen Vektor der Länge 260 die Indizes der Untergruppen erstellen zu bestimmen. (Es gibt viele Möglichkeiten, dies zu tun, aber ich denke, auf diese Weise leicht zu verstehen ist.)
indices <- as.numeric(cut(1:260, 20))
indices #just to show the output
Sie müssen wahrscheinlich die Ausgabe in einer Liste speichern. Der folgende Code ist wiederum nicht der effizienteste, aber leicht zu verstehen.
result <- list()
for (i in 1:20){
result[[i]] <- t.test(a2[which(indices == i)], c2[which(indices == i)],
alternative = c("two.sided"),
mu = 0, paired = TRUE, var.equal = TRUE,
conf.level = 0.95)
}
result[[1]] #gives the results of the first t-test (items 1 to 20)
result[[2]] # ...
Als Alternative zum for
-loop Sie auch lapply
verwenden könnte, die in der Regel effektiver und ein bisschen kürzer ist (aber das für 260 Datenpunkte spielt keine Rolle):
result2 <- lapply(1:20, function(i) t.test(a2[which(indices == i)],
c2[which(indices == i)],
alternative = c("two.sided"),
mu = 0, paired = TRUE, var.equal = TRUE,
conf.level = 0.95))
result[[1]] # ...
Ich hoffe, Das beantwortet deine Frage.
Hey Entschuldigung, ich dachte, der Datenrahmen war zu groß und unordentlich. A und C Spalten in dem Datenrahmen Vielen Dank für Ihre Hilfe darstellen! – Emilia