Цикл / повторение линейных регрессий по столбцам и подмножество за группой - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь добавить два осложнения к простой линейной регрессии. Во-первых, я хочу выполнить циклическую линейную регрессию для большого набора данных, а во-вторых, я хочу выполнить эту циклическую регрессию внутри групп.

У меня есть фрейм данных (df), который также предоставляет значения столбцов для примерно 18000 генов в качестве столбца для метрики жизнеспособности c. Я хочу выполнить линейную регрессию между показателем жизнеспособности c и каждым из 18000 генов и извлечь коэффициент корреляции и p-значение. Для этого работает следующий код:

n <- 18121 #column corresponding to last gene
my_lms <- lapply(2:n, function(x)
  summary(lm(df[ , x] ~ df$`Viability metric`))) #perform iterative linear regressions between each gene and the PRISM score for a given condition 

p_value <- sapply(my_lms, coef)  # select only the p-value and coef values from summary
colnames(p_value) <- colnames(df[, 2:n]) #re assigning genes to col names
p_value <- as.data.frame(t(p_value[c(2,8), ])) # selecting the row that corresponds to the p-value (8) and coef (2) of the lm for each gene 

Есть еще один столбец, который определяет группы родословной. Я могу выполнить линейную регрессию между двумя переменными столбца (ZSWIM4 - одно из имен гена) по группе происхождения, но не могу понять, как сделать это зацикленным, как указано выше. Я использовал этот код для выполнения групповой линейной регрессии:

 my_lms_lineage <- df %>%
  group_by(lineage) %>%
  do(model = lm(ZSWIM4 ~ `Viability metric`, data = . ))

Как я могу объединить эти две спецификации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...