0

我必须在基于用户的协作过滤上创建一个推荐矩阵

我在数据框中有值

> 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
4

1 回答 1

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

于 2013-09-09T07:54:35.883 回答