Я пытаюсь сделать что-то похожее на то, что ответили здесь, что дает мне 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)
Этот вопрос задал в основном тот же вопрос, но только один столбец "info". Я имею несколько других столбцов и хотел бы сделать это для всех из них.
Бонусные баллы для этого, используя dplyr.