如果我正在使用数据集,并且想对数据进行分组(即按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))
最佳答案
如果您想做类似的事情,ungroup()
很有用
gapminder %>%
group_by(country) %>%
mutate(mn = pop/mean(pop)) %>%
ungroup()
您想要在其中进行某种转换的方法,该方法使用整个组的统计信息。在上面的示例中,
mn
是人口与该组平均人口的比率。当取消分组时,对其进行任何进一步的更改都不会将分组用于汇总统计信息。summarize
会自动减小尺寸,并且没有办法将其取回。也许你想做gapminder %>%
group_by(country) %>%
mutate(mn = mean(pop)) %>%
ungroup()
这将为每个组的平均值创建
mn
,并为该组中的每一行复制。关于r - 在dplyr中解释ungroup(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48446816/