如何获得每个基因的每个重复的平均值?

时间:2018-01-18 20:14:06

标签: r average limma

我是R和编码的新手,所以这可能是一个非常明显的答案!

我有一个log2值的数据集,用于数千个基因探针的四个daphnia重复,对应于各种基因(如图所示)。但是,对于每个复制,我想得到每个基因的平均表达。有没有办法可以做到这一点?

RStudio Console Screenshot

这是我数据框的顶部:

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 个答案:

答案 0 :(得分:0)

我想我明白你要做的是什么,但是如果有正确的数据,我会更加确定。

使用dplyr包:

我们可以将V5列重命名为Gene以稍微清理数据。

然后我们要将所有以“s_MC13”开头的列更改为数字。它们看起来像是当前的字符串。

最后我们group_by基因,summarise_atmean函数推送到所有列,这样您就可以得到每列的均值。

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))