1
나는 그래프를 가지고 있으며, 서로 의존적 인 노드 속성을 시뮬레이션하려고하고 있으며, 평형의 형태가 발생할 때까지 끊임없이 변화하고 있습니다. 그러나이 일련의 명령으로 for 루프를 사용할 수는 없습니다. 내가 누락 된 것이 있습니까?R에서 일련의 기능을 어떻게 반복합니까?
library(igraph)
g <- make_empty_graph (2) %>%
set_vertex_attr("a", value = 1) %>%
add_vertices(2, color = 2, "a" = 2) %>%
add_vertices(2, color = 4, "a" = 3) %>%
add_edges(c(1,2, 2,1, 1,5, 5,1, 1,4 ,4,1)) %>%
set_vertex_attr("xyz", value = 3)
plot(g)
for(i in 1:3){
V(g)$xyz = sapply(V(g), function(x) { NeighborList = neighbors(g, x) ;length(NeighborList[NeighborList$a == 2]) })
V(g)$a[V(g)$xyz==1]=2
V(g)$a
}
그래서이 코드는이 마지막 3 줄을 3 번 실행하지만 여기서는 for 루프를 수행하면 아무 일도 일어나지 않습니다.
[1] 2 1 2 2 3 3
[1] 2 2 2 2 2 3
[1] 2 2 2 2 2 3
그래서 나는 서로
루프가 3 번 같은 일을 반복 루프 카운터는'i' 내가 통해 각각의 시간을 사용하지 않습니다 아무것도 바뀌지 않습니다. 또한 예상되는 출력으로 질문을 편집 할 수 있습니까? –
이 코드가 기대하는 바는 무엇이며 어떻게 평가 했습니까? 최소한 xyz와 'a'에 대한 정점 속성 값을 변경하는 것처럼 보입니다. –
명확하지 않은 점에 대해 사과드립니다. 나는 'a'의 꼭지점 속성을 변경하고 값을 변경하기 위해 3 번 인쇄하기를 원했습니다. – Bill