【发布时间】:2013-11-19 21:27:12
【问题描述】:
我有这个函数,它返回给定图形对象 igraph_obj(权重存储在计算)用于节点1和节点2(存储在数据帧df中):
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 的每一行 i。
因此,apply 函数应该如下所示:
apply(df, 1, dweight, igraph_obj=g)
但是,dweight 不知道将 df 的哪一列用作 node1、node2。这也不起作用:
apply(df, 1, dweight, igraph_obj=g, node1 = df$Node1, node2 = df$Node1)
【问题讨论】:
-
你要么想使用
mapply,要么想修改你的函数。