我有一个免费大小的向量列表
set.seed(1)
dat <- lapply(1:10, \(x) sample(letters, size = sample(1:10,1), replace = T))
dat
[[1]]
[1] "d" "g" "a" "b" "w" "k" "n" "r" "s"
[[2]]
[1] "u"
[[3]]
[1] "j" "v" "n" "j" "g"
[[4]]
[1] "o" "u" "e" "i" "y" "n" "e" "e" "b"
[[5]]
[1] "y" "l" "o" "a" "t" "c" "f" "j" "j" "f"
有哪些方法可以制作像这样的密集矩阵,但效率更高?我还想保存示例中的列名称
library(arules)
as(transactions(dat), "matrix")
a b c d e f g h i j k l m
[1,] TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE TRUE FALSE FALSE
[2,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[3,] FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE
[4,] FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
[5,] TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE
[6,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
[7,] FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE TRUE FALSE
[8,] FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE TRUE FALSE FALSE FALSE
[9,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
[10,] TRUE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
n o r s t u v w x y z
[1,] TRUE FALSE TRUE TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
[2,] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
[3,] TRUE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
[4,] TRUE TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE FALSE
[5,] FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE
[6,] FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE
[7,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE
[8,] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE TRUE
[9,] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[10,] TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
这是 аrules 包中的示例,未针对我的目的进行优化
你可以试试
这给出了一个表
一个更短的(并且可能比我以前的
stack
方法更有效)版本是比 @ThomasIsCoding 的好解决方案稍快一些,内存效率更高:
100 个向量的快速基准测试:
另外一个选择:
基准: