R编程计算行平均值

时间:2014-05-09 03:53:24

标签: r math average mean

如何使用R来计算行平均值?

示例数据:

enter image description here

f<- data.frame(
  name=c("apple","orange","banana"),
  day1sales=c(2,5,4),
  day1sales=c(2,8,6),
  day1sales=c(2,15,24),
  day1sales=c(22,51,13),
  day1sales=c(5,8,7)
)

预期结果:

enter image description here

随后该表将添加更多列,例如预期结果仅在AverageSales day1sales.4之前。运行更多数据后,它将添加到day1sales.6,依此类推。那么如何计算所有行的平均值呢?

提前致谢。

2 个答案:

答案 0 :(得分:3)

rowMeans

> rowMeans(f[-1])
## [1]  6.6 17.4 10.8

您还可以在数据集的平均值中添加另一列

> f$AvgSales <- rowMeans(f[-1])
> f
##     name day1sales day1sales.1 day1sales.2 day1sales.3 day1sales.4 AvgSales
## 1  apple         2           2           2          22           5      6.6
## 2 orange         5           8          15          51           8     17.4
## 3 banana         4           6          24          13           7     10.8

答案 1 :(得分:1)

rowMeans是最简单的方法。函数applyapply沿着数据框的行或列的函数。在这种情况下,您希望将均值函数应用于行:

f$AverageSales <- apply(f[, 2:length(f)], 1, mean)

(已将6更改为length(f),因为您说您可能会添加更多列。)

会向数据框AverageSales添加f列,其中包含您想要的值

> f

##    name day1sales day1sales.1 day1sales.2 day1sales.3 day1sales.4 means
##1  apple         2           2           2          22           5   6.6
##2 orange         5           8          15          51           8  17.4
##3 banana         4           6          24          13           7  10.8