2017-10-16 12 views
-7

を使用してループを書き換える:R:私はこのループを得たsapply

for(i in E(g)){ 
    a = ends(g, i)[1] 
    b = ends(g, i)[2] 
    source_neighbors = neighbors(g, a) 
    target_neighbors = neighbors(g, b) 
    num_overlap_neighbors = length(intersection(source_neighbors, target_neighbors)) 
    print(num_overlap_neighbors) 
} 

gは、私はパッケージを使用していたIGRAPH GMLグラフです。私はそれを関数として書き換えたいので、sapply()を使ってE(g)に関数を適用し、出力としてベクトルを取得します。

+0

このサイトに 'lapply' /' sapply'ループを書く方法の例はたくさんあります。私たちは本当にこのために別の質問/(自己)回答のペアを必要としません。 – Roland

答えて

-2
results=sapply(E(g), function(i){ 
    a = ends(g, i)[1] 
    b = ends(g, i)[2] 
    source_neighbors = neighbors(g, a) 
    target_neighbors = neighbors(g, b) 
    num_overlap_neighbors = length(intersection(source_neighbors, target_neighbors)) 

    return(num_overlap_neighbors) 
}) 
print(results) 
+0

詳細をご説明ください。 – OmG

関連する問題