使用'by'函数然后将结果绑定到原始数​​据

时间:2013-12-30 16:08:57

标签: r

我正在尝试使用R自动识别错误数据。从历史上看,这是通过将四分之一的所有数据计算出来,计算平均值和标准差,然后剔除超过4 SD的任何值 - 然后,在淘汰的数据上再次做同样的事情(一些值是如此荒谬)在它下面有另一层次的荒谬)。对或错,这是使用的技术。我正在尝试使用by函数编写R代码,但我不知道如何将by函数的结果绑定到原始数​​据。

考虑:

x <- c(3,3,3,4,4,4) #values of interest
g <- c('1','1','1','2','2','2') #grouping variable
gmeans <- by(x,g,mean)

gmeans是一个'by'对象,可以强制转换为矩阵或列表,但有一种简单的方法可以采用这些方法并cbind()将它们转换为原始数据{{1} 1}?我知道x,但merge()默认没有用于加入的密钥。

1 个答案:

答案 0 :(得分:1)

改为使用ave,然后将其全部放入data.frame

> data.frame(x, g, mean=ave(x, g, FUN=mean))
  x g mean
1 3 1    3
2 3 1    3
3 3 1    3
4 4 2    4
5 4 2    4
6 4 2    4