Агрегирующий комплексный массив - PullRequest
0 голосов
/ 09 октября 2018

Ниже приведен более короткий фрейм данных, который у меня есть в настоящее время.Он состоит из повторяющихся идентификационных номеров, месяца, в который был приобретен элемент, и того, каким был элемент:

id <- c('100','100','200','200','300','300','300','300')
month <- c(1,1,6,8,1,1,4,7)
purchase <- c('Apple','Apple','Banana','Orange','Apple','Apple','Pear','Melon')

df <- data.frame(id,month,purchase)

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

Я хотел бы вернуть что-то вроде этого

id   combined purchase
100  [(1,'Apple'),(1,'Apple')]
200  [(6,'Banana'),(8,'Orange')]
300  [(1,'Apple'),(1,'Apple'),(4,'Pear'),(7,'Melon')]

, которое я могу соответствующим образом проиндексировать.

Возможно, существует более простой способ сделать этоно я не уверен.Буду признателен за любые отзывы и помощь.Спасибо!

1 Ответ

0 голосов
/ 09 октября 2018

Мы могли бы использовать toJSON из jsonlite

library(tidyverse)
library(jsonlite)
df %>%
   group_by(id) %>% 
   summarise(combinedpurchase = list(toJSON(unname(data.frame(month, 
                as.character(purchase))))))
...