-1

I have used pivot_longer to transform my dataset as

  name   value
  <chr>  <dbl>
1 A      3
2 B      2
3 C      3
4 A      2
5 B      2
6 C      3

I want to count value of each name as

value   A  B  C
1       0  0  0
2       1  2  0  
3       1  0  2

I wonder how to use dplyr to ahieve it.

miguel
  • 117
  • 6

1 Answers1

0

Use pivot_wider:

library(tidyr)
df %>% 
  pivot_wider(names_from = name, values_from = name,
              values_fn = length, values_fill = 0) %>% 
  complete(value = 1:3) %>% 
  replace(is.na(.), 0)

# A tibble: 3 × 4
  value     A     B     C
  <int> <int> <int> <int>
1     1     0     0     0
2     2     1     2     0
3     3     1     0     2
Maël
  • 45,206
  • 3
  • 29
  • 67