紧接方案一
由于方案一每次输出一个权重最高结点,然原始网络规模达100W,到假设一秒输出一个结点也约需要277小时,到中间阶段,有很多结点具有相同的权重。
因此做性能优化,每次输出权重最大的全部结点,预计可以吧时间缩短在3小时以内。
缺点是同属最大权重的结点间可能相关,导致结果不是特别精准,尤其随着权重变小,规模变大,尤其明显,所以设置当最大权重为5的时候停止输出。
实现代码:
library(dplyr)
library(RMySQL) # 载入RMySQL包
conn <- dbConnect(MySQL(),dbname = "NETWORKS",username = "root") # 建立数据库连接
dbSendQuery(conn, "SET @@sql_mode=ANSI;") # 启动非严格模式
dbSendQuery(conn, "SET NAMES GBK") # win7环境下如果汉字乱码,就运行这条命令
res <- dbSendQuery(conn, "SELECT * FROM NODEWeight1")
dat <- dbFetch(res, n=-1) #n=-1表示取所有数据,n=2表示取2条数据
res1 <- dbSendQuery(conn, "SELECT * FROM NODEMap1")
dat1 <- dbFetch(res1, n=-1) #n=-1表示取所有数据,n=2表示取2条数据
output <- data.frame(node