Как объединить значения в столбце B на основе значений в столбце A с помощью R? - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь объединить значения в столбце Item.ID ниже на основе значения идентификатора в столбце ID, значения в столбце Item.ID могут быть разделены запятой:

Фрейм данных (AS):

AS <- data.frame("Index" = c(1,1,2,2,2,3,4), "Item.ID" = c("A1","C2","A3","U4","M5","K6","Y9"))

Требуемый выход

AS_Wide <- data.frame("Index" = c(1,2,3,4), "Item.ID" = c("A1,C2","A3,U4,M5","K6","Y9"))

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Используя базу R, просто aggregate и paste:

AS.Wide <- aggregate(AS$Item.ID, by=list(Index=AS$Index), paste, collapse=",")

Если вы хотите сохранить имя переменной «Item.ID», вам нужно изменить его:

names(AS.Wide)[2] <- "Item.ID"
0 голосов
/ 24 января 2019

Использование Tidyverse / dplyr:

Группировка по индексу,

Расположите их по Item.ID, чтобы результат был в алфавитном порядке, но это зависит от вас.

вставьте все Item.ID вместе, свернув их ",".

library(dplyr)
AS_Wide <- AS %>% 
  group_by(Index) %>% 
  arrange(Item.ID) %>% 
  summarize(Item.ID = paste(Item.ID, collapse = ","))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...