重新整形两列数据以稀疏矩阵r从长到宽

时间:2019-02-25 15:30:49

标签: r sparse-matrix

我有一个像这样的原始数据集:

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()函数,但是它不起作用。有人可以帮忙吗?谢谢!

1 个答案:

答案 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>