Как получить среднее значение для каждой копии для каждого гена?

Я новичок в R и кодировании, и это может быть очень очевидным ответом!

У меня есть набор данных со значениями log2 для четырех повторностей дафний для тысяч генных зондов, соответствующих различным генам (как показано на рисунке). Однако для каждой реплики я хочу получить среднюю экспрессию для каждого гена. Есть ли способ, которым я могу сделать это?

Скриншот консоли RStudio

Вот вершина моего фрейма данных:

s_MC13_B1_Cd.Ni    s_MC13_B2_Cd.Ni    s_MC13_B3_Cd.Ni    s_MC13_B4_Cd.Ni   
[1,] "3.32737034165695" "3.30082063716602" "3.35288781669471" 
"3.28130201442409"
[2,] "2.99677521546021" "2.97525202994054" "3.01357652548303" 
"2.98091704146676"
[3,] "3.22057255739705" "3.24001410852619" "3.19806113996704" 
"3.17850023932788"
[4,] "3.17934205285383" "3.22237873890637" "3.20299332433795" 
"3.19533925098426"
[5,] "3.20285957796094" "3.22659173854477" "3.22878128735342" 
"3.21307289097597"
[6,] "3.16945922109561" "3.1672329312015"  "3.17366131274743" 
"3.18792397254863"

[1,] "GENE:JGI_V11_100009"
[2,] "GENE:JGI_V11_100009"
[3,] "GENE:JGI_V11_100036"
[4,] "GENE:JGI_V11_100036"
[5,] "GENE:JGI_V11_100036"
[6,] "GENE:JGI_V11_100044"

В основном я хочу получить среднее значение каждого столбца для каждого гена (столбец 5) - например, я хочу получить среднее значение первых 2 строк (GENE:JGI_V11_100009) для каждого столбца, и сделать это для каждого гена в столбце 5

1 ответ

Я думаю, что понимаю, что вы пытаетесь сделать, но с правильными данными я был бы более уверен.

с помощью dplyr пакет:

Мы можем переименовать столбец V5 в Gene, чтобы немного очистить данные.

Затем мы хотим изменить все столбцы, начинающиеся с "s_MC13", на числовые. Похоже, что они в настоящее время строки символов.

Наконец мы group_by ген и summarise_at что толкает mean работать по всем столбцам, чтобы получить среднее значение для каждого столбца.

library(dplyr)

data_averages <- data %>%
    rename(Gene = V5) %>%
    mutate_at(vars(starts_with("s_MC13")), funs(as.numeric)) %>%
    group_by(Gene) %>%
    summarise_at(vars(starts_with("s_MC13")), funs(mean))
Другие вопросы по тегам