我必须在基于用户的协作过滤
上创建推荐矩阵我在数据框中有值为
> df.user.item
uname Item
user1 I1
user2 I2
user3 I3
user2 I4
user1 I5
user1 I6
我需要将其更改为以下矩阵:
Item
uname I1 I2 I3 I4 I5 I6
user1 1 NA NA NA 1 1
user2 NA 1 NA 1 NA NA
user3 NA NA 1 NA NA NA
OR
Item
uname I1 I2 I3 I4 I5 I6
user1 1 0 0 0 1 1
user2 0 1 0 1 0 0
user3 0 0 1 0 0 0
答案 0 :(得分:1)
您正在寻找的功能是table
。假设您的data.frame
被称为“mydf”:
> table(mydf)
Item
uname I1 I2 I3 I4 I5 I6
user1 1 0 0 0 1 1
user2 0 1 0 1 0 0
user3 0 0 1 0 0 0
如果存在重复的“uname”+“Item”组合的可能性,并且您只对您所显示的二进制矩阵感兴趣,则可以将命令更改为(table(mydf) > 0)*1