dplyr:group_by,子集和摘要

时间:2015-04-13 04:42:23

标签: r dplyr

假设我有一个由多行组成的数据框,如下所示:

df <- data.frame(Group = c(0,0,1,1,1,0),V1=c(0,0,0,4,5,7), V2=c(0,3,0,4,0,1))

  Group V1 V2
1     0  0  0
2     0  0  3
3     1  0  0
4     1  4  4
5     1  5  0
6     0  7  1

组是二进制,V1和V2具有零膨胀(许多观察值== 0) 我想将每列(依次)分组以删除0 obs,然后计算剩余数据的分位数。至关重要的是,我只想删除给定变量的0,而不是删除整行,因为我想要为下一列重置和再次子集。

下面有我的分位数代码。我有什么方法可以潜入子集函数或者我需要一种不同的方法吗?

#Functions for quantiles
quant25 <- function(x) quantile(x, probs=0.25, na.rm=TRUE)
quant50 <- function(x) quantile(x, probs=0.50, na.rm=TRUE)  
quant75 <- function(x) quantile(x, probs=0.75, na.rm=TRUE)

#Grouped calls on these functions
group_by(df, Group) %>%
summarise_each(funs(quant25, quant50, quant75), V1, V2)

1 个答案:

答案 0 :(得分:0)

我想我已经为我的目的想出了这个:df[,2:3][df[,2:3]==0] <- NA宣布0观察失踪,其余的似乎按预期处理。 (谢谢,Jaap)