代码之家  ›  专栏  ›  技术社区  ›  Bada

从R中的篮子格式表转换二进制表

  •  0
  • Bada  · 技术社区  · 6 年前

    我有一个名为userItems的数据表,其格式如下:

        user_id    tag_id
    1   27938 wordpress
    2   27938      CSS3
    3   27938     HTML5
    4   27938     MySQL
    5   27934    drupal
    6   27934    joomla
    

    这只是表的开头,但它是其余数据的表示形式。它只是由用户及其所属标签组成。现在,我想将其转换为二进制格式(不知道名称是否正确),如下例所示:

       user tag1 tag2 tag3 tag4 tag5 tag6
    1    1    0    0    0    0    0    0
    2   33    0    0    1    0    0    0
    3   42    0    0    0    0    0    0
    4   51    0    0    0    0    0    0
    5   62    0    0    0    0    0    0
    6   75    0    0    0    0    0    0
    

    1表示用户具有该标记。以我为例,wordpress。还有一个0表示他没有那个标签。因此,用户27934在drupal和joomla上会有一个1。

    我该如何把第一张桌子换成第二张?一些提示或最佳实践可以真正帮助我。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Seymour    6 年前

    如果你能提供一个可复制的例子,那就更好了。

    然而

    df <- data.frame(id = c(1,1,1,1,2,2), tag_id = c("a", "b", "c", "d", "e", "f"))
    
    print(df)
    
    second_table <- table(df)
    print(second_table)
    

    功能 table() 该技巧是否创建 contingency table 从您的 data.frame

    最后,如果希望生成的表 数据框架 类而不是 table 类别:

    as.data.frame.matrix(second_table)