【发布时间】:2019-10-19 23:00:00
【问题描述】:
我有以下数据:
client_id <- c(1,2,3,1,2,3)
product_id <- c(10,10,10,20,20,20)
connected <- c(1,1,0,1,0,0)
clientID_productID <- paste0(client_id,";",product_id)
df <- data.frame(client_id, product_id,connected,clientID_productID)
client_id product_id connected clientID_productID
1 1 10 1 1;10
2 2 10 1 2;10
3 3 10 0 3;10
4 1 20 1 1;20
5 2 20 0 2;20
6 3 20 0 3;20
目标是产生一个关系矩阵:
client_id product_id clientID_productID client_pro_1_10 client_pro_2_10 client_pro_3_10 client_pro_1_20 client_pro_2_20 client_pro_3_20
1 1 10 1;10 0 1 0 0 0 0
2 2 10 2;10 1 0 0 0 0 0
3 3 10 3;10 0 0 0 0 0 0
4 1 20 1;20 0 0 0 0 0 0
5 2 20 2;20 0 0 0 0 0 0
6 3 20 3;20 0 0 0 0 0 0
也就是说,当product_id 等于10 时,客户端1 和客户端2 是连接的。重要的是,我不希望客户 1 与她自己建立联系。当product_id=20时,我只有一个客户端,也就是说没有连接,所以我应该只有零。
更具体地说,我试图创建的只是一个关系方阵,列中包含客户/产品的所有组合。只有购买相同产品的客户才能与另一个客户建立联系。
我搜索了一堆并使用了其他代码。这个问题与其他已经回答的问题之间的区别在于,我想保留第 3 号客户,即使她从未购买过任何产品。我想表明她与任何其他客户没有关系。现在,我可以通过按产品堆叠关系来创建矩阵 (How to create relational matrix in R?),但我正在努力寻找一种不堆叠它们的方法。
如果问题不够具体或过于具体,我深表歉意。无论如何,谢谢你,stackoverflow 是初学者的救星。
【问题讨论】:
-
现在您只是要求我们用定制的教程重写教科书/手册并完成您的(家庭)作业,而您没有表现出任何研究或其他努力。需求转储不是主题问题。请参阅How to Ask,点击谷歌搜索“stackexchange 作业”和投票箭头鼠标悬停文本。展示您可以做的相关部分并解释您遇到的第一个问题。请在代码问题中提供minimal reproducible example。这包括明确的规范和解释以及您可以提供的最少代码,即您显示的代码可以通过您显示的代码扩展为不正常的代码。 (调试基础。)
标签: matrix relational