Свернуть все столбцы по столбцу идентификаторов [дубликаты]
На этот вопрос уже есть ответ:
Collapse / concatenate / объединить столбец в одну строку через запятую в каждой группе 2 ответаЯ пытаюсь сделать что-то похожее на что здесь ответили, что дает мне 80% пути. У меня есть фрейм данных с одним столбцом ID и несколькими информационными столбцами. Я хотел бы свернутьвс других столбцов, так что для каждого идентификатора есть только одна строка, а несколько записей разделяются, например, точкой с запятой. Вот пример того, что у меня есть и чего я хочу.
ИМЕЮТ
ID info1 info2
1 id101 one first
2 id102 twoA second alias A
3 id102 twoB second alias B
4 id103 threeA third alias A
5 id103 threeB third alias B
6 id104 four fourth
7 id105 five fifth
ХОЧУ
ID info1 info2
1 id101 one first
2 id102 twoA; twoB second alias A; second alias B
3 id103 threeA; threeB third alias A; third alias B
4 id104 four fourth
5 id105 five fifth
Вот код, используемый для их генерации:
have <- data.frame(ID=paste0("id", c(101, 102, 102, 103, 103, 104, 105)),
info1=c("one", "twoA", "twoB", "threeA", "threeB", "four", "five"),
info2=c("first", "second alias A", "second alias B", "third alias A", "third alias B", "fourth", "fifth"),
stringsAsFactors=FALSE)
want <- data_frame(ID=paste0("id", c(101:105)),
info1=c("one", "twoA; twoB", "threeA; threeB", "four", "five"),
info2=c("first", "second alias A; second alias B", "third alias A; third alias B", "fourth", "fifth"),
stringsAsFactors=FALSE)
Этот вопро задавал в основном тот же вопрос, но только один столбец «информация». У меня есть несколько других столбцов, и я хотел бы сделать это для всех них.
Бонусные баллы за это с помощью dplyr.