Wenn Sie die Mittel aus zwei Gruppen vergleichen möchten, scheint mir, dass T-Test eine gute Wahl ist. Hier ist eine Option mit tidyverse. Zuerst habe ich einen Beispieldatenrahmen namens dat
erstellt.
# Load package
library(tidyverse)
# Set seed
set.seed(12345)
# Create example data frame
dat <- expand.grid(class1 = 1:5, class2 = 1:5) %>%
slice(rep(1:n(), 5)) %>%
mutate(rev1 = rnorm(n()), rev2 = rnorm(n())) %>%
mutate(rev2 = sample(rev2, size = n(), replace = TRUE))
# View the head of data frame
dat
# # A tibble: 125 x 4
# class1 class2 rev1 rev2
# <int> <int> <dbl> <dbl>
# 1 1 1 0.586 0.548
# 2 2 1 0.709 0.868
# 3 3 1 -0.109 0.0784
# 4 4 1 -0.453 -0.567
# 5 5 1 0.606 -0.0767
# 6 1 2 -1.82 0.167
# 7 2 2 0.630 2.66
# 8 3 2 -0.276 0.831
# 9 4 2 -0.284 -1.70
# 10 5 2 -0.919 -2.13
# # ... with 115 more rows
Danach wird filtriert I den Datenrahmens, wenn class1
== class2
, Gruppe der Daten durch class1
und dann t-Test unter Verwendung der do
Funktion durchzuführen. Schließlich kann map_dbl
den p.value jedes t.test zu einem neuen Datenrahmen erhalten.
Wenn Sie auf das Testergebnis einer bestimmten Klasse zugreifen möchten, können Sie Folgendes tun.
# Get the result of the first class
dat2$TTest[dat2$class == 1]
# [[1]]
#
# Welch Two Sample t-test
#
# data: .$rev1 and .$rev2
# t = 0.40118, df = 7.3956, p-value = 0.6996
# alternative hypothesis: true difference in means is not equal to 0
# 95 percent confidence interval:
# -0.9379329 1.3262368
# sample estimates:
# mean of x mean of y
# 0.6033533 0.4092013
Hier ist eine weitere Option können wir auch den Datenrahmen zu einer Liste verteilen und den t-Test durch die Liste anwenden.
# Split the data frame and conduct T-test
dat_list <- dat %>%
filter(class1 == class2) %>%
split(.$class1) %>%
map(~t.test(.$rev1, .$rev2))
# Get the result of the first class
dat_list$`1`
# Welch Two Sample t-test
#
# data: .$rev1 and .$rev2
# t = 0.40118, df = 7.3956, p-value = 0.6996
# alternative hypothesis: true difference in means is not equal to 0
# 95 percent confidence interval:
# -0.9379329 1.3262368
# sample estimates:
# mean of x mean of y
# 0.6033533 0.4092013
Willkommen bei StackOverflow! Bitte lesen Sie die Informationen über [wie man eine gute Frage stellt] (http://stackoverflow.com/help/how-to-ask) und wie man ein [reproduzierbares Beispiel gibt] (http://stackoverflow.com/questions/ 5963269). Dies wird es anderen sehr erleichtern, Ihnen zu helfen. – Sotos
Jetzt sehe ich, dass Sie die gleiche Frage zweimal gestellt haben: https://stackoverflow.com/questions/47999190/test-for-significance-of-specific-multiple-groups-in-r. Bitte mach das nicht beim nächsten Mal. – www