我有這個函數,它返回一個鏈接上的邊權重(在這種情況下如何使用apply函數不應該需要任何關於igraph庫的知識)圖表給出了節點1和節點2的圖表對象igraph_obj(其中重量計算後存儲的)(其被存儲在數據幀DF):使用R適用於在數據幀的特定列上運行函數
dweight <- function(igraph_obj, node1, node2){
return(E(igraph_obj)[node1 %->% node2]$weight)
}
我想在具有這種結構的數據幀應用此功能:
Node1 Node2 other_column1 other_column2 ...
a b 1 2 ...
c d 3 7 ...
...
我已閱讀文檔和教程apply函數以及我迄今爲止嘗試過的方法並沒有將函數dweight應用到每個node1,node2等。如果我必須編寫一個循環來完成它,它會執行如下操作:dweight(igraph_obj = g, df $ Node1 [i],df $ Node2 [i])爲df的每一行。
因此,應用功能應該是這個樣子:
apply(df, 1, dweight, igraph_obj=g)
但隨後,dweight不知道爲節點1,節點要使用的DF的列。這不起作用或者:
apply(df, 1, dweight, igraph_obj=g, node1 = df$Node1, node2 = df$Node1)
您要麼使用'mapply'或要修改您的功能。 – 2013-02-28 04:13:48