如何解决make_empty_graph(n = 0,directed =directed) 中的错误:VECTOR_ELT() 只能应用于“列表”,而不是“闭包”
作为本学期研究的一部分,我将添加到以前学生已经建立的网络上,但我遇到了以前从未遇到过的错误。这段代码不是我写的,我只是在前进的过程中稍微修改了一下。
所以我有一个包含 85953 个数据帧的列表 daily_networks_df
,每个数据帧看起来像这样:
generate_el <- function(net_df){
networki = net_df[,1]
if(length(networki)>1){
# add edge in all possible pairs with prob_interact[i]
prob_interact=1/sqrt(length(networki))
ppl_pairs = combn(networki,2)
tmp1 = rbinom(ncol(ppl_pairs),1,prob_interact)
el_tmp = t(ppl_pairs[,tmp1==1])
return(el_tmp)
}
}
上面的这个函数针对 3 种不同的网络类型做了一些修改,但其他 2 种非常相似,所以我没有包括在内。这是函数调用:
# DEMAND NETWORK
work_start = 2
list_el1 = lapply(daily_networks_df[1:work_start],generate_el)
gr_el1 = do.call('rbind',list_el1)
# WORK NETWORK
prob_interact = .4
list_el2 = lapply(daily_networks_df[(work_start+1):homes_start],generate_el_work)
gr_el2 = do.call('rbind',list_el2)
# HOME NETWORK
prob_interact = .8
list_el3 = lapply(daily_networks_df[(homes_start+1):length(daily_networks_df)],generate_el_homes)
gr_el3 = do.call('rbind',list_el3)
# FULL NETWORK
gr_el=rbind(gr_el1,gr_el2,gr_el3)
gr = graph_from_data_frame(gr_el,directed=FALSE,vertices=total_pop)
当我尝试执行但不知道为什么时出现此错误。有什么帮助吗?
> gr = graph_from_data_frame(gr_el,vertices=total_pop)
Error in make_empty_graph(n = 0,directed = directed) :
VECTOR_ELT() can only be applied to a 'list',not a 'closure'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。