Как запустить t-тест с подмножеством строк в R - PullRequest
0 голосов
/ 30 апреля 2020

Ниже приведена часть моих данных (pairht_protein)

enter image description here

Я пытаюсь запустить t-тест по всем переменным (столбцам) между двумя группами:

Resistant_group <- c(PAIR-01, PAIR-12, PAIR-09)
Sensitive_group <- c(PAIR-07, PAIR-02, PAIR-05)

Прежде, чем я сделал функцию, я устал выбрать одну из переменных и попытался:

t.test(m_pHSL660 ~ Subject, data = subset(pairht_protein, Subject %in% c("Resistant_group", "Sensitive_group")))

Но это дало мне ошибку: 'grouping factor must have exactly 2 levels'

Есть ли способ запустить t-тест между этими группами? и возможно сделать это как функцию?

1 Ответ

0 голосов
/ 30 апреля 2020

Сначала вы должны исправить способ определения групп (вы не можете использовать тире в именах переменных):

Resistant_group <- c('PAIR-01', 'PAIR-12', 'PAIR-09')
Sensitive_group <- c('PAIR-07','PAIR-02','PAIR-05')

Затем, используя пакет dplyr, создайте еще одну факторную переменную только с двумя уровнями:

library(dplyr)

# assuming pairht_protein is your dataset name

pairht_protein <- pairht_protein %>% mutate(sub = case_when( subject %in% Resistant_group ~1,
                                  subject %in% Sensitive_group ~2),
                          sub = as.factor(sub))

Поскольку эта новая переменная будет создавать значения NA для элементов вне ваших групп, вам не нужно задавать поднаборы:

t.test(m_pHSL660 ~ sub, data =pairht_protein)
...