年度组是指dplyr中的不均匀组?

年度组是指dplyr中的不均匀组?,r,dplyr,R,Dplyr,假设我有以下数据: library(dplyr) year <- rep(c(1,2,2,3,4,4,5),3) group <- c(rep(1,7),rep(2,7),rep(3,7)) v1 <- rep(c(0,1,2,3,4,5,6),3) v2 <- rep(c(1,2,3,4,5,6,7),3) df <- data.frame(year,group,v1,v2) 库(dplyr) 年我们可以试试 library(dplyr) Un1 <- u

假设我有以下数据:

library(dplyr)
year <- rep(c(1,2,2,3,4,4,5),3)
group <- c(rep(1,7),rep(2,7),rep(3,7))
v1 <- rep(c(0,1,2,3,4,5,6),3)
v2 <- rep(c(1,2,3,4,5,6,7),3)
df <- data.frame(year,group,v1,v2)
库(dplyr)
年我们可以试试

library(dplyr)
Un1 <- unique(df$year)
lapply(seq_along(Un1), function(i) 
        df[df$year %in% Un1[seq(i)],] %>% 
        group_by(group) %>% 
        summarise_each(funs(mean), v1:v2)) %>% 
        setNames(., Un1) %>%
        bind_rows(., .id='year')
库(dplyr)
Un1%
分组依据(分组)%>%
总结每个(funs(平均值),v1:v2))%>%
集合名(,Un1)%>%
绑定行(,.id='year')

这太好了,谢谢!我刚刚用
mutate(year=I)
@cigrainger添加了年份。您可以使用
bind\u行中的
.id
获取“年份”列。太好了,谢谢。我认为这可以通过使用
filter(年份%in%Un1[seq(I)])
group\u之后使用
而不是
[
。这样它就不会每次搜索所有行。@cigrainger我专门用它来扩展数据集。在
dplyr
框架中,您可能需要使用
do
来实现这一点,但这将再次变得缓慢。
library(dplyr)
Un1 <- unique(df$year)
lapply(seq_along(Un1), function(i) 
        df[df$year %in% Un1[seq(i)],] %>% 
        group_by(group) %>% 
        summarise_each(funs(mean), v1:v2)) %>% 
        setNames(., Un1) %>%
        bind_rows(., .id='year')