Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更好的编码实践:使用dplyr循环生成摘要统计数据_R_Loops_Dplyr_Statistics - Fatal编程技术网

更好的编码实践:使用dplyr循环生成摘要统计数据

更好的编码实践:使用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

我有两个变量要总结,我正在努力循环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 %>% 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))