Я только начал кодировать на R, и у меня есть вопрос о применении теста хи-квадрат к набору данных по 2 столбцам за раз.
Я хотел бы провести парный анализ (образцы опухоли и нормальной ткани взяты от одного пациента, поэтому первичная опухоль 1 и нормальная ткань 1 получены от одного пациента). Я хотел бы увидеть различия в распределении между опухолью и нормальным образцом от одного и того же пациента и применить их ко всем 50 пациентам.
Я ранее пробовал критерий согласия по критерию хи-квадрат, рассчитывая ожидаемую вероятность, взяв среднее значение по всем нормальным выборкам.
Я использовал следующий код:
apply(mydata, 2, chisq.test, p=myprobability)
На этот раз я хочу провести тест хи-квадрат Пирсона (не степень согласия) опухоли и соответствующей нормальной ткани.
Итак, я хотел бы провести тест хи-квадрат по двум столбцам: Первичная опухоль 1 + Норма 1 ... Затем, следующая, Первичная опухоль 2 + Норма 2
и получите таблицу статистики хи-квадрат и p-значений. (В этом случае мне пришлось бы использовать скорректированные значения p, верно? Потому что я прогнал его на 50 наборах образцов?)
В качестве воспроизводимого примера ...
mydata <-
structure(list(Tumor1 = c(17, 28, 80, 63, 20,
10), Normal1 = c(18, 27, 89, 62, 24,
11), Tumor2 = c(25, 40, 80, 65, 23,
11), Normal2 = c(27, 29, 100, 72, 34,
6)), class = "data.frame",
row.names = c("trim3", "trim2", "trim1", "add1", "add2",
"add3"))
head(mydata)
Tumor1 Normal1 Tumor2 Normal2
trim3 17 18 25 27
trim2 28 27 40 29
trim1 80 89 80 100
add1 63 62 65 72
add2 20 24 23 34
add3 10 11 11 6
Я попытался использовать функцию apply, как и для удобства, но не смог заставить ее работать.
Спасибо
x <- lapply(1:2, function(x) as.matrix(mydata[, paste0(c('Tumor', 'Normal'), x)])); x <- simplify2array(x); mantelhaen.test(x)
, где1:2
- идентификаторы пациентов 11.03.2020