【问题标题】:R Average of column when value of other column is equalR 当其他列的值相等时列的平均值
【发布时间】:2015-11-05 08:21:39
【问题描述】:

我有这样的表“年龄”:

Age State
23    1
26    3
29    1
41    2
51    1

对于这样的问题,最简单的方法是对那些 State = 1 的人平均年龄

【问题讨论】:

    标签: r average


    【解决方案1】:

    如果我们只需要 'Age' 的 mean,其中 'State' 为 1,则将对应于 1 的 'State' 的 'Age' 值子集并得到 mean

    mean(df1$Age[df1$State==1])
    

    或者如果我们需要每个“州”组的“年龄”mean,一个选项是aggregate

    aggregate(Age~State, df1, FUN=mean)
    

    或者我们使用data.table 将“data.frame”转换为“data.table”(setDT(df1)),得到“年龄”的“平均值”,按“状态”分组。

    library(data.table)
    setDT(df1)[, list(Age=mean(Age)), State]
    

    【讨论】:

      【解决方案2】:

      等等:

      library(dplyr)
      
      df %>% group_by(State) %>% summarise(ave = mean(Age)) %>% filter(State == 1)
      

      【讨论】:

        【解决方案3】:

        你也可以... mean(subset(df1,State == 1)$Age)

        【讨论】:

          猜你喜欢
          • 2020-12-07
          • 2020-03-11
          • 1970-01-01
          • 1970-01-01
          • 2017-11-24
          • 2023-03-28
          • 1970-01-01
          • 1970-01-01
          • 2017-01-26
          相关资源
          最近更新 更多