如何识别转换表中的独立子集?求R或DuckDB SQL高效方案
问题:经济分类转换组的唯一标识分配
原始转换规则表
原始转换规则的R语言定义如下:
df0 <- data.frame( old=c("a","b","b","c","c","d","e","f","g","h","h","i"), new=c("A","A","B","B","C","C","C","D","D","E","F","G"))
该表的分类转换逻辑:
- 旧分类
h拆分至新分类E、F - 旧分类
f、g合并为新分类D - 旧分类
i直接转换为新分类G a、b、c、d、e属于不可拆分的关联转换组(通过共享新分类形成关联链:a→A关联b,b→B关联c,c→C关联d、e)
需求说明
需要为old列的4个独立子集分配唯一标识,期望输出如下:
data.frame( old= c("a","b","c","d","e","f","g","h","i"), id = c( 1, 1, 1, 1, 1, 2, 2, 3, 4))
当前困境与诉求
已通过base-R的双循环求交集方式实现,但该方法在处理大规模分类数据时效率极低。现寻求两种优化方案:
- 基于R包中底层语言实现的高效解决方案
- 更优的DuckDB SQL解决方案
内容的提问来源于stack exchange,提问作者Nicolas2
相关产品推荐
相关产品推荐

