Hi,
You could use pivot_wider. Like this...
df <- tribble(~Name, ~Color,
'car', 'green',
'bus','red',
'train','black',
'ship','red',
'bus','red',
'car','black',
'ship','green',
'car','black',
'bus','black',
'train','red',
'car','green',
'bus','green',
'ship', 'red',
'bus', 'green',
'train','red')
df %>%
count(Name, Color, sort = TRUE) %>%
pivot_wider(names_from = Color, values_from = n, values_fill = 0)
Brgds. Henrik