我是R和编码的新手,所以这可能是一个非常明显的答案!
我有一个log2值的数据集,用于数千个基因探针的四个daphnia重复,对应于各种基因(如图所示)。但是,对于每个复制,我想得到每个基因的平均表达。有没有办法可以做到这一点?
这是我数据框的顶部:
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栏
答案 0 :(得分:0)
我想我明白你要做的是什么,但是如果有正确的数据,我会更加确定。
使用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))