【发布时间】:2015-07-06 19:47:18
【问题描述】:
我想知道如何在 R 中找到 HITS 函数。这是我的代码:
library(igraph)
library(proxy)
A <- matrix(c(0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0),
nrow=6, ncol=6, byrow=TRUE)
G <- graph.adjacency(A, mode=c("directed"), weighted=NULL)
kmax <- 6
op <- HITS(G,kmax)
这是我得到的错误:
Error in t.default(adj) : argument is not a matrix
上面提到的HITS函数我编码了,不知道如何在大矩阵的循环函数中实现。
HITS<-function(g,k)
{
adj <- get.adjacency(g)
nodes <- dim(adj)[1]
auth <- c(rep(1,nodes))
hub <- c(rep(1,nodes))
for(i in 1:k){
t_adj <- t(adj)
auth <- t_adj%*%hub
hub <- adj%*%auth
sum_sq_auth <- sum(auth*auth)
sum_sq_hub <- sum(hub*hub)
auth <- auth/sqrt(sum_sq_auth)
hub <- hub/sqrt(sum_sq_hub)
}
result <- c(auth,hub)
return(result)
}
【问题讨论】:
-
你在找这个吗? igraph.org/r/doc/kleinberg.html