如果我有一个数据集工作,我想对数据进行分组(即通过country),计算汇总统计(mean()),然后ungroup()将data.frame有一个与原始尺寸的数据集(country- year)和一个新列,其中列出了平均每个国家(重复超过n年),我该怎么做dplyr?该ungroup()函数不返回data.frame原始尺寸:
gapminder %>%
group_by(country) %>%
summarize(mn = mean(pop)) %>%
ungroup() # returns data.frame with nrows == length(unique(gapminder$country))
Run Code Online (Sandbox Code Playgroud)
ungroup() 如果您想做类似的事情很有用
gapminder %>%
group_by(country) %>%
mutate(mn = pop/mean(pop)) %>%
ungroup()
Run Code Online (Sandbox Code Playgroud)
您想在其中进行某种转换,以使用整个组的统计信息。在上面的示例中,mn是人口与组平均人口的比率。当取消分组时,对其进行任何其他更改都不会将分组用于汇总统计信息。
summarize自动缩小尺寸,没有办法将其恢复。也许你想做
gapminder %>%
group_by(country) %>%
mutate(mn = mean(pop)) %>%
ungroup()
Run Code Online (Sandbox Code Playgroud)
它mn为每个组创建均值,并为该组中的每一行复制。
| 归档时间: |
|
| 查看次数: |
3999 次 |
| 最近记录: |