我有一个像这样的原始数据集:
ID Click
1 A
1 B
1 E
2 A
2 Q
3 B
3 D
3 F
我打算做的就是将它转置成这样的稀疏矩阵:
ID A B D E Q F
1 1 1 0 1 0 0
2 1 0 0 0 1 0
3 0 1 1 0 0 1
稀疏矩阵的列号是原始数据中唯一的“点击”值的数目。稀疏矩阵的行号是原始数据中唯一的“ ID”号的数目。如果“点击”出现在原始数据集中的特定ID中,则该值为1,否则为0。
我在R中尝试了reshape()
函数,但是它不起作用。有人可以帮忙吗?谢谢!
答案 0 :(得分:-1)
您可以执行以下操作:
library(tidyverse)
dat <- tribble(~"ID", ~"Click",
1, "A",
1, "B",
1, "E",
2, "A",
2, "Q",
3, "B",
3, "D",
3, "F")
table(dat)
#> ID A B D E F Q
#> 1 1 1 0 1 0 0
#> 2 1 0 0 0 0 1
#> 3 0 1 1 0 1 0
由reprex package(v0.2.1)于2019-02-25创建
编辑:要澄清我的信息,您不需要library(tidyverse)
,也可以使用tribble()
构建数据,而您要查找的功能是table()
< / p>