Я хочу создать список результатов t-теста, к которому были применены соответствующие поправки на неравные дисперсии, если тест levene показал, что они были необходимы. Вот несколько примеров данных.
#create dataset
set.seed(555)
data<- data.frame(group = rep(letters[1:2], each = 5),
var1 = rnorm(n = 10, mean = 1.2, sd = 1),
var2 = rnorm(n = 10, mean = 2.8, sd = .50))
>data
group var1 var2
1 a 1.89686907 2.696915
2 a 1.66000554 2.650026
3 a 0.03941319 2.932389
4 a 2.47693939 2.674999
5 a 0.14176879 2.650867
6 b 1.24219445 2.889152
7 b 1.87350165 2.576014
8 b 1.10712963 3.082120
9 b 1.00297421 2.502752
10 b 2.64126704 2.314156
>
Я узнал, как создавать списки результатов левен-теста и результатов t-теста (в этом примере я предполагаю равные дисперсии для всех t-тестов).
levene.tests<-lapply(data[,c("var1","var2")],
function(x) leveneTest(x ~ data$group))
t.tests<-lapply(data[,c("var1","var2")],
function(x) t.test(x ~ data$group, var.equal = TRUE))
И мне также удалось использовать if и else, поэтому R выберет для меня правильный тип теста в зависимости от того, равны ли дисперсии для одиночных переменных.
#if else statement for var1 only
if (levene.tests$"var1"$"Pr(>F)"[1]<.05) {
t.test(data$var1 ~ data$group, var.equal = FALSE)
} else {
t.test(data$var1 ~ data$group, var.equal = TRUE)
}
Сейчас я пытаюсь собрать эти коды вместе, чтобы получить соответствующий результат t-теста для всех переменных (в данном случае var1 и var2) в объекте типа списка. Кто-нибудь может помочь?