我有一个名为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个。
我如何将第一张桌子更改为第二张桌子?一些提示或最佳实践可以真正帮助我。
答案 0 :(得分:1)
如果你提供一个可重复的例子,它总是更好。
然而,
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
。
最后,如果您希望结果表为data.frame
类而不是table
类:
as.data.frame.matrix(second_table)