Это пример коротких данных. Исходные данные имеют много столбцов и строк.
голова (df, 15)
ID col1 col2
1 1 green yellow
2 1 green blue
3 1 green green
4 2 yellow blue
5 2 yellow yellow
6 2 yellow blue
7 3 yellow yellow
8 3 yellow yellow
9 3 yellow blue
10 4 blue yellow
11 4 blue yellow
12 4 blue yellow
13 5 yellow yellow
14 5 yellow blue
15 5 yellow yellow
что я хочу посчитать, сколько разных цветов в col2, включая цвет col1. Например: для ID = 4 в col2 есть только 1 цвет. если мы включим col1, есть 2 разных цвета. Таким образом, вывод должен быть 2 и так далее.
Я пытался таким образом, но он не дает мне желаемого результата: ID = 4 превращается в 0, что не так, как я хочу. Так, как я мог сказать R считать их включая цвет в col1?
out <- df %>%
group_by(ID) %>%
mutate(N = ifelse(col1 != col2, 1, 0))
Мой желаемый результат примерно такой:
ID col1 count
1 green 3
2 yellow 2
3 yellow 2
4 blue 2
5 yellow 2