更好的编码实践:使用dplyr循环生成摘要统计数据
我有两个变量要总结,我正在努力循环R。我想按年份对变量进行分组,然后总结两个变量:R_D$和返回$。我的代码在下面。。。我如何做循环而不是编写两次代码 按R\U D选择的摘要 资料 按年度列出的报表摘要更好的编码实践:使用dplyr循环生成摘要统计数据,r,loops,dplyr,statistics,R,Loops,Dplyr,Statistics,我有两个变量要总结,我正在努力循环R。我想按年份对变量进行分组,然后总结两个变量:R_D$和返回$。我的代码在下面。。。我如何做循环而不是编写两次代码 按R\U D选择的摘要 资料 按年度列出的报表摘要 aggregate(df[, c("Returns")] , df["year"], FUN = function(x) c(summary(x), sum = sum(x), sd = sd(x))) 编辑1 ,您能否实现将代码直接输出到数据帧中? Returs_Year<- df
aggregate(df[, c("Returns")] , df["year"], FUN = function(x) c(summary(x), sum = sum(x), sd = sd(x)))
编辑1
,您能否实现将代码直接输出到数据帧中?
Returs_Year<- df %>% group_by(Year) %>%
do(data.frame(as.list(summary(.$`Returns$`)), check.names = FALSE))
ds3 <-df %>%
group_by(Year) %>%
summarise( sum=sum(`Returns$`), sd=sd(`Returns$`))
Returs_Year<- Returs_Year %>% left_join(ds3)
Year Min. 1st Qu. Median Mean 3rd Qu. Max. sum sd
2006 0 0.0 1.2 15.5 16.0 161.0 730.2 31.6
2007 0 0.0 0.9 20.8 18.1 213.9 976.2 45.0
2008 0 0.0 2.2 30.2 20.1 361.4 1418.6 72.9
df = data.frame(year = 1:4, replicate(2,sample(0:20,20,rep=TRUE)))
col = c("R_D","Returns" )
colnames(df)[2:3] <- col
aggregate(df[, c("R_D")] , df["year"], FUN = function(x) c(summary(x), sum = sum(x), sd = sd(x)))
aggregate(df[, c("Returns")] , df["year"], FUN = function(x) c(summary(x), sum = sum(x), sd = sd(x)))
df1 = aggregate(x= df[, c("R_D","Returns")] , df["year"], FUN = function(x) c(summary(x), sum = sum(x), sd = sd(x)))
R_D = as.data.frame(cbind(Year = df1$year, df1$R_D))
Returns = as.data.frame(cbind(Year = df1$year, df1$Returns))