【发布时间】:2019-04-12 22:14:37
【问题描述】:
我想知道一种将汇总统计信息添加回数据框每一行的 tidyverse 方法。
下面的代码有效,但应该是一个更快的方法,对吧?
library("tidyverse")
data <- (iris)
means <- iris %>%
group_by(Species) %>%
summarise(
Sepal.Length = mean(Sepal.Length),
Sepal.Width = mean(Sepal.Width)
)
data <- merge(data, means, by = "Species")
【问题讨论】:
-
只需使用
mutate而不是summarize即可一步获得完全相同的结果。 Summarize 删除所有其他列,每组仅保留 1 个汇总值,mutate 计算相同的值,然后将它们添加为新列 -
@camille:不,它不是重复的。该问题只需要一个包含 4 个(汇总)行的数据框:3 个组统计数据和 1 个总统计数据。此问题希望将这些统计信息列加入原始数据帧的每一行。
-
@smci 知道了,所以骗子 divibisan 发布了?
-
@divibisan:不,这个问题又不同了:这是关于将每组统计数据(收入总和)加入原始数据帧,然后在汇总统计数据上计算汇总统计数据 (每个 daily_revenue 小计占总收入的百分比)。每个人都容易上当受骗的扳机指!