首页 > 解决方案 > 有没有办法在 R 中添加一个新列作为类似值的计数?

问题描述

我试图通过简单地显示基于 R 中两个不同列的条件的原始计数来简化数据框。我正在处理美国最近两次选举的选举数据。首先,我想按州过滤,然后按性别过滤。所以我有这个看起来像这样的数据框:

状态 性别 投票 方法
男性 1 1
男性 1 99
女性 2 1
男性 1 1
AK 女性 2 99
AK 男性 1 1
AK 女性 2 99

等等五十个州。我想创建新的列来计算每个州的男性和女性。我可以过滤我的数据以显示计数,然后我可以手动输入,但我希望能够将其作为一段平滑的代码运行。我已经根据年份将我的数据框分成两部分,目前,这是我想继续这样做的方式。

#Split election data into two years
election16 <- election %>%
    filter(year == 2016)

election20 <- election %>%
    filter(year == 2020)

#Filter 2016 data by condition
election16 %>%
    filter(state == 'AL' & sex == 'male')

这给了我输出:

# A tibble: 1,262 x 5
    year state sex   voted method
   <dbl> <chr> <chr> <dbl>  <dbl>
 1  2016 AL    male      2      1
 2  2016 AL    male      1     99
 3  2016 AL    male     98     99
 4  2016 AL    male      2      1
 5  2016 AL    male      1     99
 6  2016 AL    male     96     99
 7  2016 AL    male      1     99
 8  2016 AL    male     96     99
 9  2016 AL    male      2      1
10  2016 AL    male     97     99
# ... with 1,252 more rows

所以我并不坚决反对在阿拉巴马州手动添加一个名为“男性”的新列,该列有 1,262 个,但我确信有一种巧妙的方法可以做到这一点。

标签: dataframeselectfilterconditional-statements

解决方案


推荐阅读