You need to enable JavaScript to run this app. 如何将arules包中稀疏矩阵形式的Groceries数据集转换为表格形式可视化查看?
优惠活动
大模型
产品
解决方案
定价
更多

如何将arules包中稀疏矩阵形式的Groceries数据集转换为表格形式可视化查看?

将arules包Groceries稀疏数据集转换为普通可查看/可视化表格的实现方法

Groceries数据集在arules中存储为transactions类型的稀疏itemMatrix结构,无法直接以普通表格形式浏览或适配常规可视化工具,可根据使用场景选择以下两种转换方案:

前置准备

首先加载依赖包与数据集:

# 加载arules包
library(arules)
# 加载内置Groceries数据集
data(Groceries)
# 确认对象结构
class(Groceries)
# 输出:[1] "transactions" "itemMatrix"

方案1:转换为宽格式稠密数据框

转换后每一行对应1笔独立交易,每一列对应1种在售商品,单元格值为逻辑值,标记该笔交易是否购买了对应商品,适合逐笔核查交易构成、绘制商品分布热图。
转换代码:

# 稀疏transactions对象强制转为稠密矩阵
g_dense_matrix <- as(Groceries, "matrix")
# 矩阵转常规R数据框
g_wide_df <- as.data.frame(g_dense_matrix)

转换后直接运行View(g_wide_df)即可打开全表浏览,表结构为9835行(总交易数)、169列(总商品数)。

方案2:转换为长格式整洁数据框

转换后无空值单元格,每一行对应「某笔交易中购买某件商品」的单条记录,完全适配ggplot2等绘图工具的输入规范,适合开展商品频次统计、品类销售占比类可视化。
转换代码:

# 将transactions转为列表结构,每个元素存单笔交易的商品集合
g_trans_list <- LIST(Groceries)
# 拼接为长表
g_long_df <- data.frame(
  transaction_id = rep(names(g_trans_list), lengths(g_trans_list)),
  item = unlist(g_trans_list)
)

转换后表结构为43367行(总实际购买条目数)、2列,可直接开展统计计算,比如绘制Top10热销商品条形图:

# 统计Top10热销商品
top_10_items <- sort(table(g_long_df$item), decreasing = TRUE)[1:10]
barplot(top_10_items)

注意事项

  • 转换后的普通数据框仅适用于查看与可视化场景,后续开展关联规则挖掘时仍建议使用原始稀疏transactions对象,避免稠密表内存占用过高、计算效率下降
  • 若觉得宽表列数过多浏览不便,可先通过itemFrequency()计算商品支持度,筛选高频商品列后再查看,减少无效信息干扰

内容的提问来源于stack exchange,提问作者user366312

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.30 11:15:07