Я пытаюсь написать часть кода, которая делает несколько вещей:
1) набор групповых данных по идентификатору
2) подсчитать количество уникальных месяцев в столбце data.month
3) удалить все удостоверения личности, которые имеют менее 9 месяцев
4) распечатать отдельные идентификаторы на основе компании (то есть дважды распечатать идентификатор, если он связан с двумя компаниями)
5) удалить дублированный идентификатор и сохранить запись с наибольшим номером data.month.
У меня есть код, работающий до 5). Я не могу получить свой код, чтобы распечатать только запись (строку) дубликатов идентификаторов с наибольшим номером месяца.
Я посмотрел несколько примеров здесь:
R удалить дубликаты на основе других столбцов
Удаление дубликатов на основе условия 2-го столбца
Я могу понять, как удалить дубликаты, но у меня возникают проблемы с применением этого в моих обстоятельствах.
Это два кода, которые я пытался достичь своей цели:
data.check6 <- bind %>%
group_by(bind$ABN) %>%
summarise(count = n_distinct(data.month)) %>%
filter(count>8) %>%
rrange(bind$data.month) %>%
filter(row_number() == 1)
и
library(tidyverse)
data.check7 <- bind %>%
group_by(ABN)%>%
filter(1 == length(unique(bind$data.month)), !duplicated(bind$data.month))
Прямо сейчас я получаю ошибку:
Ошибка вrange_impl (.data, точки): неверный размер (345343) в
позиция 1, ожидая: 3749
В конце я хотел бы иметь набор данных, в котором каждый идентификатор появляется только один раз, и это запись идентификатора, связанная с наибольшим месяцем (т. Е. Значение столбца = 12)