【问题标题】:R Programming Calculate Rows AverageR编程计算平均行数
【发布时间】:2014-06-26 16:53:04
【问题描述】:

如何使用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 等等。那么如何计算所有行的平均值呢?

【问题讨论】:

    标签: r math average mean


    【解决方案1】:

    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
    

    【讨论】:

    • f[-1] 可能比f[2:length(f)] 更简洁
    • 我也很简洁。改变了。
    【解决方案2】:

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

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

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

    将在数据框f 中添加一个AverageSales 列,其中包含您想要的值

    > 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
    

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
    • ??当然,它提供了问题的答案。
    • 不幸的是,它并没有解决它。顺便谢谢。
    • @Wulworine - 我不知道你在说什么。目前的答案清楚地解决了这个问题。它没有很长的描述,但对于 R 标签来说并不少见,其中代码可以非常快速地运行以显示结果。
    猜你喜欢
    • 2020-07-04
    • 2017-12-05
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    相关资源
    最近更新 更多