r - 如何使用 R 创建包含聚合均值的列?

标签 r dataframe aggregate

<分区>

在 R 中,我在数据框中有一堆数据,例如:

state | zip   | value
______|_______|______
CA    | 94555 | 18
CA    | 94556 | 5
OH    | 12345 | 22
OH    | 12346 | 10

等等。

我想在每一行中添加一列,列出该州的平均“值”。

我可以通过“(aggregate(data$value, list(State = data$state), mean))”获取方法的数据框。这给了我一个包含 50 行的数据框,每个州一行。但我需要返回到原始数据框并将该州的平均值放入属于该州的行中。

我该怎么做?

最佳答案

还有一个data.table解决方案

library(data.table)
DT <-  data.table(state = c("CA","CA","OH","OH"), 
                   zip = c(94555,94556,12345,12346), 
                   value = c(18, 5, 22, 10))

DT[, mean := mean(value), by = state]

##    state   zip value mean
## 1:    CA 94555    18 11.5
## 2:    CA 94556     5 11.5
## 3:    OH 12345    22 16.0
## 4:    OH 12346    10 16.0

关于r - 如何使用 R 创建包含聚合均值的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11945288/

相关文章:

RHadoop:所需的 REDUCE 能力超过集群中支持的最大容器能力

python - 如何有条件地更新 Pandas 数据框中的多列

Scala - 如何将 Dataset[Row] 转换为可以添加到 Dataframe 的列

r - 按组计算最小值和最大值(范围)

database - 如何在 $lookup 管道中使用 $text 搜索

R 如何根据另一个变量的范围获得一个变量的平均值?

r - 以 08 :00-08:15 等时间间隔运行

r - R中的sqrt(9)和sqrt(x=9)有什么区别?

python - 使用 Pandas 从具有不同行长度的文件导入数据

r - 在 R 中反转正则表达式