2
我生成一个事务列表,其包括用户ID,项目ID和用户 - 项目对如何经常occures计数:配售从事务列表中的值到一个稀疏矩阵与一个for循环
UserID ItemID N
X S123 4
X S134 3
X S135 10
Y S564 1
Y S432 2
Z S189 3
缺货的列表我想创建一个稀疏矩阵,其中行代表用户ID和列表示ItemID,并且单元格是相应的计数,或者如果该对从未出现过0. 0.
我写了一个for循环,永远,行数> 100.000,列数> 2000:
for(i in 1:nrow(mat)){
for(j in 1:ncol(mat)){
r <- rownames(mat)[i]
c <- colnames(mat)[j]
mat[i,j] <- ifelse(length(trans[(trans$UserID == r) & (trans$ItemID == c), "N"]) > 0, trans[(trans$UserID == r) & (trans$ItemID == c), "N"], 0)
}
}
那么,有没有更快的方法?