年度组是指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')