У меня есть набор данных, который выглядит следующим образом:
data <- data.frame(place=c("Start", "B", "B", "A", "A", "Start", "A", "O", "A", "Start", "O", "A", "O"), ID=c(rep(1, 5), rep(2,4), rep(3,4)))
place ID
1 Start 1
2 B 1
3 B 1
4 A 1
5 A 1
6 Start 2
7 A 2
8 O 2
9 A 2
10 Start 3
11 O 3
12 A 3
13 O 3
Я хочу посчитать, сколько раз в каждом group_by (ID) присутствует «O».Таким образом, ID 1 имеет ноль O, ID 2 имеет один «O», а ID 3 имеет два O.Решение сильфонного фильтра для строк с O, так что я не получаю ноль.
Решения из приведенных ниже ответов дают такой вывод:
ID place
1 2 1
2 3 2
Но мне нужна таблица, которая также показывает счет для ID 1, который равен нулю.Я, конечно, мог бы оставить left_join в исходных идентификаторах, а затем установить их счетчик на ноль, но должно быть решение, которое будет более простым.