汇总平均中位数数据帧R

时间:2018-12-20 18:15:41

标签: r

我有一个数据帧,其中包含针对不同SNP窗口的Fst值。

我想总结每个基因窗口的Fst值的平均值和中值:

gene chr    start Nsites     Fst01    Fst02    Fst12


1     AC002310.7  16 30591000      2       1       8.      5
2         ZNF785  16 30591000      2       1       30     1
3     AC002310.7  16 30593000      2       2       4.     10
4         ZNF785  16 30593000      2       3       20.    2
5     AC002310.7  16 30595000      2       3       2.     20
6         ZNF785  16 30595000      2       6.      10.    3

输出:

      gene           n   Fst01    Fst02    Fst12     
1     AC002310.7     3    2.        4.      10
2         ZNF785     3    3.       20       2

我写了这样的东西:

df %>% summarise_at(group_by(df, gene), vars(Fst01, Fst02,Fst12), funs(n(),mean))

但是它给了我以下错误:

Error: `.vars` must be a character/numeric vector or a `vars()` object, not list
Call `rlang::last_error()` to see a backtrace

任何帮助,万分感谢,欢呼

1 个答案:

答案 0 :(得分:1)

使用管道时,左侧的对象作为第一个参数传递给右侧的函数,因此您可以这样做:

df %>% group_by(gene) %>%  summarise_at(vars(Fst01, Fst02,Fst12), funs(n(),mean))

通过这种方式,group_by的第一个参数是dfsummarise_at的第一个参数是df,按gene分组