【问题标题】:How to calculate conditional average in data frame in R?如何计算R中数据框中的条件平均值?
【发布时间】:2020-11-26 12:36:38
【问题描述】:

假设我们有一个数据集,一个 sn-p 看起来像:

count  party  gender
0      Rep    F
2      Rep    M
3      Rep    F

如果party = Repgender = F,我正在尝试计算count 列的平均值。 IE。这里应该是 1.5。这怎么能用 R 代码写呢?

【问题讨论】:

    标签: r conditional-statements average


    【解决方案1】:

    这行得通吗:

    library(dplyr)
    dat %>% filter(party == 'Rep' & gender == 'F') %>% summarise(avg = mean(count))
    # A tibble: 1 x 1
        avg
      <dbl>
    1   1.5
    

    【讨论】:

      【解决方案2】:

      如果你想使用基础 R:

      mean(df[(df$party == 'Rep' & df$gender == 'F'),]$count)
      

      【讨论】:

        【解决方案3】:

        使用data.table

        setDT(dt)
        dt[, mean(count), .(party, gender)]
        

        输出:

           party gender  V1
        1:   Rep      F 1.5
        2:   Rep      M 2.0
        

        这将计算所有 party-gender 对的 meancount,如果您想包含所有组合(不仅仅是 Rep/F)。

        数据:

        dt = read.table(text = 'count  party  gender
        0      Rep    F
        2      Rep    M
        3      Rep    F
        ', header = T)
        

        【讨论】:

          猜你喜欢
          • 2020-12-16
          • 2021-06-20
          • 1970-01-01
          • 2021-02-16
          • 1970-01-01
          • 2017-09-24
          • 2020-07-06
          • 2021-06-19
          • 1970-01-01
          相关资源
          最近更新 更多