使用group_by变量创建group_by和count表时出现问题

时间:2019-04-02 17:46:20

标签: r group-by count dplyr

我正在尝试通过“ a_sex_dv”进行分组并计算“ preference_over_time”

但是我的输出没有按性别分组

我尝试过

PreferenceOverTimeSex <- all7Wide %>% 
                         group_by('a_sex_dv') %>%
                         count('preference_over_time')

我将最后一个变量名放在''中,否则r在all7Wide表中找不到变量。

我原来的all7Wide表如下:

ID      a_sex_dv   preference_over_time .  
1       male       conservative_conservative_labour
2       female     conservative_conservative_labour
3       female     conservative_conservative_labour
4       male       labour_conservative_labour
5       female     labour_conservative_labour

我用上面的代码生成的表是

preference_over_time                 freq      
conservative_conservative_labour     3
labour_conservative_labour           2

我想要的桌子是

sex      preference_over_time                freq
male     conservative_conservative_labour    1
female   conservative_conservative_labour    2
male     labour_conservative_labour          1
female   labour_conservative_labour          1

谢谢

1 个答案:

答案 0 :(得分:0)

count确实为您提供了方便功能,请参见tally以获取需要首先进行分组的版本。在您的原始代码中,当您调用count时,它将覆盖上一行的分组。

您需要在count中指定要计数的列(并且不需要在变量名上加上引号)。您还可以手动分组并根据需要使用tally

library(tidyverse)
all7Wide <- read_table2("ID      a_sex_dv   preference_over_time
1       male       conservative_conservative_labour
2       female     conservative_conservative_labour
3       female     conservative_conservative_labour
4       male       labour_conservative_labour
5       female     labour_conservative_labour"
)


all7Wide %>% 
  count(a_sex_dv, preference_over_time)
#> # A tibble: 4 x 3
#>   a_sex_dv preference_over_time                 n
#>   <chr>    <chr>                            <int>
#> 1 female   conservative_conservative_labour     2
#> 2 female   labour_conservative_labour           1
#> 3 male     conservative_conservative_labour     1
#> 4 male     labour_conservative_labour           1

all7Wide %>%
  group_by(a_sex_dv, preference_over_time) %>%
  tally()
#> # A tibble: 4 x 3
#> # Groups:   a_sex_dv [2]
#>   a_sex_dv preference_over_time                 n
#>   <chr>    <chr>                            <int>
#> 1 female   conservative_conservative_labour     2
#> 2 female   labour_conservative_labour           1
#> 3 male     conservative_conservative_labour     1
#> 4 male     labour_conservative_labour           1

reprex package(v0.2.1)于2019-04-02创建