dplyr: group_by, 子集和总结
dplyr: group_by, subset and summarise
假设我有一个由多行组成的数据框,如下所示:
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有零-inflation(很多观察== 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)
我想我已经为我的目的想出了这个:df[,2:3][df[,2:3]==0] <- NA
声明缺少 0 个观测值,其余的似乎按预期处理。 (谢谢,夏侯)
假设我有一个由多行组成的数据框,如下所示:
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有零-inflation(很多观察== 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)
我想我已经为我的目的想出了这个:df[,2:3][df[,2:3]==0] <- NA
声明缺少 0 个观测值,其余的似乎按预期处理。 (谢谢,夏侯)