r - 聚合复杂数组
问题描述
下面是我目前拥有的一个较短的数据框。它由重复的 ID 号、购买该物品的月份以及该物品是什么组成:
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')]
我可以相应地索引。
可能有更简单的方法可以做到这一点,但我不确定。我将不胜感激任何反馈和帮助。谢谢!
解决方案
我们可以toJSON
使用jsonlite
library(tidyverse)
library(jsonlite)
df %>%
group_by(id) %>%
summarise(combinedpurchase = list(toJSON(unname(data.frame(month,
as.character(purchase))))))
推荐阅读
- elasticsearch - 使用 ElasticSearch 7.1 和 log4j2.11.1 进行远程数据存储处理
- rxjs - 如何获取存储为主题 rxjs 的数据
- c# - 直接访问 Angular 应用程序上的受保护路由,.net 托管
- java - 需要有关 Instanceof 运算符中类型转换的信息
- excel - excel 活动 X 按钮每次操作都会变大
- javascript - 拖放文件大小错误
- java - 无法复制到 mac 上的 .m2 目录来设置现有的工作 JAVA 项目
- c# - CSHTML - using LINQ to sum values by a column for creating a table
- javascript - 在 Android 9 版本的移动设备中流式传输音频有问题吗?
- android - 在 SQLite 的数据库中创建表无法正常工作