简体   繁体   中英

Problem creating group_by and count table with group_by variable

I am trying to group_by 'a_sex_dv' and count 'preference_over_time'

However my output does not group by sex

I have tried

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

I put the last variable name in '' otherwise r could not find variables in the all7Wide table.

My original all7Wide table looks like this:

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

The table I produced with above code is

preference_over_time                 freq      
conservative_conservative_labour     3
labour_conservative_labour           2

The table I want is

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

Thanks

count does grouping for you as a convenience function, see tally for the version that needs you to group first. In your original code, when you call count it is going to override the grouping from the previous line.

You need to specify the columns to count by in count (and you don't need quotes on variable names). You can also group manually and use tally if you like:

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

Created on 2019-04-02 by the reprex package (v0.2.1)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM