我这有两个表:dim_match和dim_item,前者表示为用户购买的商品集合,后者表示商品的类别属性。
表dim_match:coll_id表示用户id,这里只有两个用户,i1-i3表示商品的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 |
代码如下:
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 A2x<-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