使用tidyverse函数复制Reforme2聚合的整洁方式
我理解,使用tidyverse函数复制Reforme2聚合的整洁方式,r,dplyr,reshape2,tidyr,tidyverse,R,Dplyr,Reshape2,Tidyr,Tidyverse,我理解,tidyr所做的事情少于reformea2:tidyr从不聚合 从更好地遵循tidyverse理念的意义上讲,是否有一种“正确”的方法来复制2的聚合 我通常把几个dplyr动词和一个tidyr动词结合起来。即: 复制 dcast(mtcars, gear~cyl, value.var = "disp", sum) gear 4 6 8 1 3 120.1 483.0 4291.4 2 4 821.0 655.2 0.0 3 5 21
tidyr
所做的事情少于reformea2
:tidyr
从不聚合
从更好地遵循tidyverse理念的意义上讲,是否有一种“正确”的方法来复制2的聚合
我通常把几个dplyr动词和一个tidyr动词结合起来。即:
复制
dcast(mtcars, gear~cyl, value.var = "disp", sum)
gear 4 6 8
1 3 120.1 483.0 4291.4
2 4 821.0 655.2 0.0
3 5 215.4 145.0 652.0
能行
mtcars %>%
group_by(gear, cyl) %>%
summarise(disp = sum(disp)) %>%
spread(cyl, disp)
Source: local data frame [3 x 4]
Groups: gear [3]
gear `4` `6` `8`
* <dbl> <dbl> <dbl> <dbl>
1 3 120.1 483.0 4291.4
2 4 821.0 655.2 NA
3 5 215.4 145.0 652.0
mtcars%>%
组别(档位,气缸)%>%
汇总(显示=总和(显示))%>%
排列(气缸,显示)
来源:本地数据帧[3 x 4]
组别:gear[3]
档位'4``6``8`
*
1 3 120.1 483.0 4291.4
2 4 821.0 655.2 NA
3 5 215.4 145.0 652.0
我很欣赏任何关于这是否是一个最佳解决方案的见解,如果不是,什么更好以及为什么我会冒险猜测,它与一次一步的向前管道策略更有效,您可以将其缩短为
mtcars%%>%count(cyl,gear,wt=disp)%%>%spread(cyl,n)
,但基本上就是这样。这里没有什么问题。有很多方法可以剥猫皮。无论你是用重塑2
、tidyverse
还是在base中,都没有更好的客观效果。我同意有很多方法可以剥我们的猫(或我们的数据)的皮,但当tidyr失去聚合功能时,tidyverse中应该用什么来取代它呢?@HAVB我认为你这样做的方式很好。我认为“tidyverse方式”是在大部分时间使用dplyr的聚合工具以长格式处理数据,然后在最后传播以供展示。但这可能太宽泛了,无法得到好的答案。