tidyverse では、ワードカウントも、group_by() 関数に続いて、 summarize() 関数を使うと、簡単に記述できます。
下記のように複数の Symbol がある時、AAA は3個、CCC は2個と数えるようなケースです。
> meta_data %>% select(Id, Symbol)
# A tibble: 9 x 2
Id Symbol
<chr> <chr>
1 id1 AAA
2 id2 AAA
3 id3 AAA
4 id4 BBB
5 id5 BBB
6 id6 BBB
7 id7 CCC
8 id8 CCC
9 id9 DDD
カウントするために、いったん、 mutate(count = 1)
として、計算用のデータを格納しておきます。
> meta_data %>% select(Id, Symbol) %>% mutate("count" = 1)
# A tibble: 9 x 3
Id Symbol count
<chr> <chr> <dbl>
1 id1 AAA 1
2 id2 AAA 1
3 id3 AAA 1
4 id4 BBB 1
5 id5 BBB 1
6 id6 BBB 1
7 id7 CCC 1
8 id8 CCC 1
9 id9 DDD 1
group_by(Symbol) %>% summarize("total" = sum(count))
として、カウントの合計を求めることができます。続けて書くと、下記のようなコードになります。
result_data <- meta_data %>%
select(Id, Symbol) %>%
mutate("count" = 1) %>%
group_by(Symbol) %>%
summarize(total = sum(count))
>
>
> result_data
# A tibble: 4 x 2
Symbol total
<chr> <dbl>
1 AAA 3
2 BBB 3
3 CCC 2
4 DDD 1
ちなみに、 summarize("total" = sum(Symbol))
とすることはできません。sum() 関数が integer や double などの数値を引数とすることに対して、Symbol は character であり、型が異なるためです。