You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R的data.table中关联另一表信息新增列

使用data.table合并多表生成热门产品统计表

你可以通过data.table的连接操作,将统计好浏览次数的表与products表关联,获取对应的category字段。以下是两种实用方法:

方法1:基于你已有的代码补充合并

你已经完成了浏览次数的统计与排序,只需在现有tab表基础上,关联products表的product_id和category字段即可:

# 你已有的统计代码
tab <- january_views[, .N, by = product_id]
setorderv(tab, cols = "N", order = -1)

# 合并category字段(左连接,保留所有统计出的产品)
result <- tab[products[, .(product_id, category)], on = "product_id"]

或者使用merge函数(写法更通用):

result <- merge(tab, products[, .(product_id, category)], by = "product_id", all.x = TRUE)

参数all.x = TRUE确保保留tab中所有产品,即使products表中没有匹配项(此时category会显示为NA)。

方法2:链式操作一步完成(更高效简洁)

直接将统计、合并、排序整合为一行操作,减少中间变量,提升代码效率:

result <- january_views[, .N, by = product_id][
  products[, .(product_id, category)], 
  on = "product_id"
][order(-N)]

如果习惯用setorderv排序(data.table推荐的内存高效排序方式):

result <- january_views[, .N, by = product_id][
  products[, .(product_id, category)], 
  on = "product_id"
]
setorderv(result, cols = "N", order = -1)

关于示例数据的说明

你提供的示例数据中,january_views里的product_id与products表完全不匹配,因此最终结果的category列会全部显示为NA,这属于正常现象,实际业务数据中存在匹配项时会自动填充对应分类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:35:44