У меня есть набор данных в длинном формате. Некоторые записи имеют только одного производителя, некоторые записи дублируются, поскольку с каждой записью связано несколько производителей.
Например, у меня есть следующие данные:
id manufacturer
111 AAA
222 AAA
222 BBB
222 CCC
222 DDD
333 CCC
333 DDD
444 EEE
Используя dplyr, я добавил ранг, чтобы иметь возможность подсчитывать количество производителей.
df %>%
select(id, manufacturer) %>%
group_by(id) %>%
mutate(rank = rank(manufacturer, ties.method = "first"))
Чтобы получить:
id manufacturer rank
111 AAA 1
222 AAA 1
222 BBB 2
222 CCC 3
222 DDD 4
333 CCC 1
333 DDD 2
444 EEE 1
Я пробовал dcast, который приближает меня, но я не совсем там.
dcast(df, id ~ rank)
Когда я использую dcast, я получаю:
id 1 2 3 4
111 1 NA NA NA
222 1 2 3 4
333 1 2 NA NA
444 1 NA NA NA
Что я пытаюсь получить:
id manuf_1 manuf_2 manuf_3 manuf_4
111 AAA
222 AAA BBB CCC DDD
333 CCC DDD
444 EEE