КОНТЕКСТ:
- Я работаю с данными опроса на уровне респондентов. Каждая строка моего фрейма данных представляет ответы на опрос отдельного человека.
- Мой фрейм данных состоит из оценок полезности индивидуального уровня из эксперимента «Максимальная разница» И категориальных переменных, указывающих, в какой из нескольких подгрупп находится отдельный респондент опроса.
- Каждая переменная подгруппы является отдельной категориальной переменной с ровно двумя уровнями. Однако в моем желаемом выводе я хотел бы иметь фрейм данных, где каждый уровень каждой подгруппы имеет свой собственный столбец.
ЦЕЛЬ:
Я хочу создать функцию, которая для каждой определенной пользователем подгруппы будет проводить рекурсивные Т-тесты для каждого элемента максимальной разницы во фрейме данных, извлекать элементы из вывода Т-теста и сохранять элементы в фрейме данных.
Используя T statisti c результаты в качестве примера, конечный результат должен выглядеть следующим образом:
Males_T_stat Females_T_stat
MD_item1 2.71 2.5
MD_item2 1.71 1.5
MD_item3 0.71 0.5
CURRENT КОД:
- Сейчас я сосредоточен на написании кода для итеративного выполнения T-тестов и сохранения всего выходного объекта каждого теста в списке. Код, который я безуспешно пытался выполнить, приведен ниже:
Создание тестового фрейма данных:
dat <- data.frame(
md1 = 1:60,
gender = factor(rep(c("m", "f"), 30)),
generation = factor(rep(c("a", "b"), 30)),
md2 = 61:120
)
Укажите имена моей подгруппы респондентов (т. Е. категориальные переменные).
groupnames <- c("gender", "generation")
item_vec <- dat %>% select(contains(("md")))
group_vec <- dat[groupnames]
Преобразовать векторы имен подгрупп в кадры данных. этот шаг может быть лишним, но мне удобнее работать с фреймами данных.
item_vec <- data.frame(item_vec)
group_vec <- data.frame(group_vec)
До сих пор я пытался использовать вложенные циклы for для запуска T-тестов и сохранения каждого результата теста в списке. Этот код частично работает; для каждой подгруппы, названной в "group_ve c", код выдает результаты T-теста только для последнего элемента в "item_ve c". Тем не менее, я хочу получить результаты для КАЖДОГО элемента в "item_ve c", где я и остановился.
res <- list()
for (i in 1:length(group_vec)) {
res[[i]] <- list(test)
for (j in 1:length(item_vec)) {
test <- (t.test(item_vec[[j]] ~ group_vec[[i]]))
res[i] <- list(test)
}
}
res
Заранее благодарю за любую помощь, которую вы можете оказать!