将一组按手段添加到原始数据 [英] Adding a column of means by group to original data

查看:123
本文介绍了将一组按手段添加到原始数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想根据 R data.frame 中的因子列添加一列手段。像这样:

I want to add a column of means based on factor column in R data.frame. Like this:

df1 <- data.frame(X = rep(x = LETTERS[1:2], each = 3), Y = 1:6)
df2 <- aggregate(data = df1, Y ~ X, FUN = mean)
df3 <- merge(x = df1, y = df2, by = "X", suffixes = c(".Old",".New"))
df3
#   X Y.Old Y.New
# 1 A     1     2
# 2 A     2     2
# 3 A     3     2
# 4 B     4     5
# 5 B     5     5
# 6 B     6     5

要完成此问题,我必须创建两个不必要的 data.frames 。我想知道一种方法,通过因子列附加一列手段到我原来的 data.frame 中,而不创建任何额外的 data.frames 。感谢您的时间和帮助。

To accomplish this problem I've to create two unnecessary data.frames. I'd like to know a way to append a column of means by factor column into my original data.frame without creating any extra data.frames. Thanks for your time and help.

推荐答案

这是 ave 功能用于。

df1$Y.New <- ave(df1$Y, df1$X)

这篇关于将一组按手段添加到原始数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆