找回密码
 立即注册
查看: 10144|回复: 2

求大神帮忙解决一个数据处理问题

[复制链接]
发表于 2015-10-9 22:10:44 | 显示全部楼层 |阅读模式
我这有两个表:dim_match和dim_item,前者表示为用户购买的商品集合,后者表示商品的类别属性。
表dim_match:coll_id表示用户id,这里只有两个用户,l1-l3表示商品的id;

coll_id i1 i2 i3
1 002 00A 00B
2 00A 00C



表dim_item: item_id表示用户id,cat_id表示商品类目;
item_id cat_id
001 N1
002 N2
00A A1
00B A1
00C A2
现在想通过dim_item表对dim_match表进行操作,把每个用户购买的商品id替换为商品类目cat_id,即形成这样的结果:
coll_id i1 i2 i3
1 N2 A1 A1
2 A1 A2


大家帮帮忙啦
回复

使用道具 举报

发表于 2015-10-10 10:26:07 | 显示全部楼层
小弟抛砖引玉
> coll_id= c(1,2)
> i1 = c('002','00A')
> i2 = c('00A','00C')
> i3 = c('00B','')
> dim_match<-data.frame(coll_id,i1,i2,i3)
> item_id=c('001','002','00A','00B','00C')
> cat_id=c('N1','N2','A1','A1','A2')
> dim_item<-data.frame(item_id,cat_id)
>
> dim_match
  coll_id  i1  i2  i3
1       1 002 00A 00B
2       2 00A 00C   
> dim_item
  item_id cat_id
1     001     N1
2     002     N2
3     00A     A1
4     00B     A1
5     00C     A2
>
> x<-transform(dim_match,i1=dim_item[match(i1, dim_item[,1]),2],i2=dim_item[match(i2, dim_item[,1]),2],i3=dim_item[match(i3, dim_item[,1]),2])
> x
  coll_id i1 i2   i3
1       1 N2 A1   A1
2       2 A1 A2 <NA>

FYI
George
回复

使用道具 举报

 楼主| 发表于 2015-10-16 23:14:35 | 显示全部楼层
感谢感谢,已经解决了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2025-5-7 04:00 , Processed in 0.029952 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表