Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于分组变量的dplyr行中间值_R_Dplyr - Fatal编程技术网

基于分组变量的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]))))