Проведение серии t-тестов между двумя фреймами данных с ковариатами - PullRequest
0 голосов
/ 17 октября 2018

У меня есть два кадра данных, один с ковариатами для образцов пациентов, а другой с данными метилирования для образцов.Мне нужно выполнить t-тесты, чтобы сравнить данные метилирования по полу.

Мои кадры данных выглядят примерно так - Ковариаты:

        "patient"   "sex"   "ethnicity"
sample1    p1         0      caucasian
sample2    p2         1      caucasian
sample3    p3         1      caucasian
sample4    p4         0      caucasian
sample5    p5         0      caucasian
sample6    p6         1      caucasian

и продолжается до выборки46

Метилирование:

       sample1  sample2 sample3 sample4 sample5 sample6 sample7 sample8 sample9 sample10
probe1  0.1111  0.2222  0.3333  0.4444  0.5555  0.6666  0.7777  0.8888  0.9999  1.111
probe2  0.1111  0.2222  0.3333  0.4444  0.5555  0.6666  0.7777  0.8888  0.9999  1.111
probe3  0.1111  0.2222  0.3333  0.4444  0.5555  0.6666  0.7777  0.8888  0.9999  1.111
probe4  0.1111  0.2222  0.3333  0.4444  0.5555  0.6666  0.7777  0.8888  0.9999  1.111

и т. Д. Для 80 000 различных зондов и 46 различных образцов.Поэтому, если я хочу провести серию t-тестов, сравнивающих данные метилирования с полом для первых 8 образцов, могу ли я просто указать: t.test(t(methylation[,1:8]) ~ covariates$sex)?Или есть способ, которым я могу связать имена образцов (sample1, sample2 ...)?(Извините заранее, я очень плохо знаком с R и статистикой)

1 Ответ

0 голосов
/ 17 октября 2018

Один простой способ - создать один элемент data.frame methyl_cov_df, а затем использовать формулу.

Ниже приведен пример t.test для первых 6 выборок probe1 значения на sex (соответственно измените количество требуемых выборок):

# combined data frame
methyl_cov_df <- cbind(t(methylation[,1:6]),covariates)

meth_cov_df:

        probe1 probe2 probe3 probe4 patient sex ethnicity
sample1 0.1111 0.1111 0.1111 0.1111      p1   0 caucasian
sample2 0.2222 0.2222 0.2222 0.2222      p2   1 caucasian
sample3 0.3333 0.3333 0.3333 0.3333      p3   1 caucasian
sample4 0.4444 0.4444 0.4444 0.4444      p4   0 caucasian
sample5 0.5555 0.5555 0.5555 0.5555      p5   0 caucasian
sample6 0.6666 0.6666 0.6666 0.6666      p6   1 caucasian


# t.test by formula: slice the data.frame to use the number of samples: done for 6 below
t.test(formula = probe1~sex, data= methyl_cov_df[1:6,]) 

t-критерий Уэлча Два

data:  probe1 by sex
t = -0.19612, df = 4, p-value = 0.8541
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
  -0.5613197  0.4872530
sample estimates:
  mean in group 0 mean in group 1 
0.3703333       0.4073667    

Данные:

covariates <- read.table(text = '        "patient"   "sex"   "ethnicity"
sample1    p1         0      caucasian
           sample2    p2         1      caucasian
           sample3    p3         1      caucasian
           sample4    p4         0      caucasian
           sample5    p5         0      caucasian
           sample6    p6         1      caucasian', header = T)

methylation <- read.table(text = "       sample1  sample2 sample3 sample4 sample5 sample6 sample7 sample8 sample9 sample10
probe1  0.1111  0.2222  0.3333  0.4444  0.5555  0.6666  0.7777  0.8888  0.9999  1.111
probe2  0.1111  0.2222  0.3333  0.4444  0.5555  0.6666  0.7777  0.8888  0.9999  1.111
probe3  0.1111  0.2222  0.3333  0.4444  0.5555  0.6666  0.7777  0.8888  0.9999  1.111
probe4  0.1111  0.2222  0.3333  0.4444  0.5555  0.6666  0.7777  0.8888  0.9999  1.111", header = T)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...