如下表数据,希望从左边的三列数据转换成右边的矩阵。规则是在同一个Item下如果Share-A+Share-B >0.05,那就构建A与B之间的关系,赋值为1. 如果有多个Item下Comp之间能构成联系则将赋值相加。然后自己与自己之间的关系(如A-A)赋值为0.
| Item | Comp | Share | | | A | B | C | D |
| 1 | A | 0.01 | | A | 0 | 0 | 1 | 2 |
| 1 | B | 0.02 | | B | 0 | 0 | 1 | 1 |
| 1 | C | 0.05 | | C | 1 | 1 | 0 | 1 |
| 1 | D | 0.04 | | D | 2 | 1 | 1 | 0 |
| 2 | A | 0.03 | | | | | | |
| 2 | D | 0.02 | | | | | | |
然后目前能做到的步骤是通过Item构建Comp之间的关系,但不知道如何才能加入Share的规则进行赋值,以及将自身之间的关系赋值为0
以下是我目前能做的代码
outer_join <- merge(Mydata,Mydata, by='Item', all=TRUE)
table(outer_join$Comp.x, outer_join$Comp.y)
希望各位大神们不吝赐教!!!非常感谢