如何使用R来计算行平均值?
示例数据:
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)
)
预期结果:
随后该表将添加更多列,例如预期结果仅在AverageSales day1sales.4之前。运行更多数据后,它将添加到day1sales.6,依此类推。那么如何计算所有行的平均值呢?
提前致谢。
答案 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
是最简单的方法。函数apply
将apply
沿着数据框的行或列的函数。在这种情况下,您希望将均值函数应用于行:
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