91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R語言怎么實現網絡構建

發布時間:2022-05-27 15:29:58 來源:億速云 閱讀:615 作者:iii 欄目:大數據

本篇內容介紹了“R語言怎么實現網絡構建”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

網絡分析(network analysis)是指通過連接法,尋找變量之間的聯系,以網絡圖或者連接模型(connection model)來展示數據的內部結構,從而簡化復雜系統并提取有用信息的一種定量分析方式。在生態學中常利用相關性來構建網絡模型,可以使用一個數據集例如物種群落數據進行分析,這時候展現物種之間的共出現模式(co-occurance pattern),也可以結合多個數據集進行分析,例如分析環境因子對物種的影響等,網絡分析是一種比較自由的分析方法。

構建相關性網絡,首先需要計算不同變量之間的相關系數矩陣,然后根據相關系數確定變量之間的網絡連接,在R中常使用igraph包進行網絡模型可視化。這里以目水平的微生物群落以及環境因子數據為例構建相關性網絡:

#讀取物種與環境因子數據community=read.table(file="otu_table_L4.txt", header=TRUE)rownames(community)=community[,1]community=community[,-1]com=t(community)environment=read.table(file="environment.txt", header=TRUE)rownames(environment)=environment[,1]env=environment[,-1]env=env[rownames(com),]data=as.matrix(cbind(com, env))#計算相關性矩陣并篩選p<0.05、r>0.45的數據library(Hmisc)corr=rcorr(data, type="spearman")rcorr=corr$r #提取相關系數pcorr=corr$P #提取檢驗結果p值#注意要去掉自相關(對角線上的數據)for (i in 1:nrow(rcorr)) {  for (j in 1:nrow(rcorr)) {    if (i!=j) {      if (pcorr[i, j]>0.05) {        rcorr[i, j]=0      }    }    if (rcorr[i, j]>-0.45 & rcorr[i, j]<0.45) {      rcorr[i, j]=0    }  }}#構建相關網絡library(igraph)g=graph.adjacency(rcorr, mode="undirected", weighted=T, diag=F)

在這里graph.adjacency()函數使用鄰接矩陣(這里為相關矩陣)創建連接模型,其中mode可選"undirected"和"directed",分別表示連接有無方向(箭頭),weighted=T表示連接線的粗細或長短與相關系數成正比,diag=F去掉鄰接矩陣中對角線數據(即去掉自相關),我們可以提取節點與連接的信息:

R語言怎么實現網絡構建

接下來進行繪圖:

#相關網絡可視化m=length(colnames(com))n=length(colnames(env))t=length(colnames(rcorr))size1=numeric(m)for (i in 1:m) {  size1[i]=sum(com[,i])}size1=(10000*size1)^0.25size2=numeric(n)for (i in 1:n) {  size2[i]=sum(abs(rcorr[,m+i]))-1}size2=1.7*sqrt(10*size2)size=c(size1, size2)col=character(length(E(g)$weight))weight=E(g)$weightfor (i in 1: length(E(g)$weight)) {  if (weight[i]>0) {    col[i]="red"  } else {    col[i]="blue"  }}pcolor=c(rep("goldenrod1", m), rep("steelblue3", n))par(mfrow=c(2,2), mar=c(1,1,1,1))plot(g,vertex.color=pcolor, layout=layout.fruchterman.reingold, vertex.size=size, vertex.label="", vertex.frame.color="gray", edge.width=1, asp=1, edge.color=col)plot(g,vertex.color=pcolor, layout=layout_as_tree, vertex.size=size, vertex.label="", vertex.frame.color="gray", edge.width=1, asp=1, edge.color=col)plot(g,vertex.color=pcolor, layout=layout_randomly, vertex.size=size, vertex.label="", vertex.frame.color="gray", edge.width=1, asp=1, edge.color=col)plot(g,vertex.color=pcolor, layout=layout.circle, vertex.size=size, vertex.label="", vertex.frame.color="gray", edge.width=1, asp=1, edge.color=col)

在這里繪圖函數實際上為plot.igraph()。其中,使用物種相對豐度數據(size1)來為物種節點的大小賦值,使用環境因子相關性數據(size2)為環境因子節點(vertex)賦值,每一個顯著的強相關作為一個連接(edge),正相關與負相關使用不同顏色來區分(col)。此外layout為展示樣式,有layout.auto、layout.circle、layout.fruchterman.reingold、layout.graphopt、layout.grid、layout.lgl、layout.random、layout.reingold.tilford、layout.sphere、layout.star、layout.kamada.kawai、layout_as_star、layout_as_tree、layout_nicely、layout.davidson.harel、layout_with_dh、layout.graphopt、layout.mds、layout_with_lgl、layout_with_fr、layout_randomly、layout_on_sphere等。繪圖結果如下所示:

R語言怎么實現網絡構建

可以選擇合適的展示方式來展示相關網絡,接下來我們進一步優化做圖參數,如下所示:

#進一步優化作圖par(mfrow=c(1,1), mar=c(1,1,1,1))myshape=c(rep("circle", m), rep("square", n))plot(g,vertex.color=pcolor, layout=layout.fruchterman.reingold, vertex.size=size, vertex.shape=myshape, vertex.label=rownames(rcorr), vertex.label.font=1, vertex.label.cex=0.5, vertex.label.dist=0.2, vertex.label.degree=-pi/2, vertex.label.color="black", vertex.frame.color="gray", edge.width=10*weight^4, asp=1, edge.color=col)

在上面腳本中使用形狀區分物種節點和環境因子節點,vertex.shape可選方形square、圓形circle、球體sphere、等,可以使用?shapes查看其他形狀例如三角等添加方法;使用相關性大小(weight)為邊的寬度()賦值;asp設置圖片的長寬比,取值范圍0-1;edge.curved設置連接(edge)的彎曲程度,取值0-1,其中0為不彎曲。做圖結果如下所示:

R語言怎么實現網絡構建

“R語言怎么實現網絡構建”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南和县| 交口县| 永安市| 保靖县| 聊城市| 泸定县| 朝阳区| 凤庆县| 驻马店市| 安庆市| 临朐县| 姚安县| 双桥区| 广丰县| 策勒县| 水城县| 阿鲁科尔沁旗| 兴安县| 宁城县| 任丘市| 鄂托克旗| 乌恰县| 丹凤县| 来宾市| 汽车| 浑源县| 文山县| 会同县| 广州市| 松阳县| 如皋市| 乌什县| 乐昌市| 北宁市| 出国| 南康市| 崇礼县| 开远市| 苍溪县| 资讯| 巴东县|