基于分组变量的dplyr行中间值
假设这是我的示例数据:基于分组变量的dplyr行中间值,r,dplyr,R,Dplyr,假设这是我的示例数据: gene_data=data.frame(gene=c("g1","g2","g3","g4"), sample1=c(12,25,73,84), sample2=c(54,65,89,97), sample3=c(45,25,6,8), sample4=c(23,23,45,6)) 我想得到每个基因的平均表达,当我尝试这个方法时,它不起作用 gene_data %>% group_by(gene) %>% summarise(medians=median(
gene_data=data.frame(gene=c("g1","g2","g3","g4"),
sample1=c(12,25,73,84),
sample2=c(54,65,89,97),
sample3=c(45,25,6,8),
sample4=c(23,23,45,6))
我想得到每个基因的平均表达,当我尝试这个方法时,它不起作用
gene_data %>% group_by(gene) %>% summarise(medians=median(.))
因为它警告我非数字列是第一个“基因”列
但是,这一点非常有效:
gene_data %>% group_by(gene) %>% summarise(medians=median(sample1:sample4))
这一个创建了这样的输出,这是我想要的:(这个表是错误的,小心,所以这不是我想要的)
也许这太容易了,但我找不到适合Dplyr的。谢谢您的帮助。我们可以使用
do
library(dplyr)
gene_data %>%
group_by(gene) %>%
do(data.frame(medians = median(unlist(.[-1]))))
我们可以使用
do
library(dplyr)
gene_data %>%
group_by(gene) %>%
do(data.frame(medians = median(unlist(.[-1]))))
您需要
summary_each
即gene_data%%>%group_by(gene)%%>%summary_each(funs(中位数=中位数(,na.rm=真)))
查看?如果
和的话进行总结?如果你要查找每行的中位数,库(matrixStats),那么我需要这样的输出:4×2基因中位数1 G117.5 g2 24.0 3 g3 59.0 4 g4 45.0如果你要查找每行的中位数,库(matrixStats);行中位数(如.matrix(基因数据[-1]))
谢谢akrun,这也很好。您需要对每个中位数进行汇总
查看?如果
和的话进行总结?如果你要查找每行的中位数,库(matrixStats),那么我需要这样的输出:4×2基因中位数1 G117.5 g2 24.0 3 g3 59.0 4 g4 45.0如果你要查找每行的中位数,库(matrixStats);rowMedians(如.matrix(gene_data[-1]))
感谢akrun,这也很好用。
library(dplyr)
gene_data %>%
group_by(gene) %>%
do(data.frame(medians = median(unlist(.[-1]))))