比如说计算矩阵中每行之间的重叠率,得到一个相似性矩阵。
代码如下,用的是两个for循环,这个代码针对小数据量没问题,一旦到大数据量,计算速度就超级慢。
所以,请大牛给出利用apply家族函数解决办法?多谢!!!
H <- matrix(sample(c(0,1),30,replace = T), 5, 6)
Sim <- matrix(0, nrow(H), nrow(H))
for(i in 1:nrow(H)){
for(j in 1:nrow(H)){
if(rowSums(H)[i]!=0 | rowSums(H)[j]!=0){
Sim[i,j] <- length(intersect(which(H[i,]>0), which(H[j,]>0)))/(rowSums(H)[i]+rowSums(H)[j])
}
}
}


雷达卡





京公网安备 11010802022788号







