인접 목록이 있고 인접 행렬 또는 가장자리 목록을 만들려고합니다. 이는 인접성 매트릭스 또는 에지 목록으로 구축 된 네트워크에서 네트워크 분석을 수행하기위한 것입니다.r 인접 목록에서 인접 행렬 또는 가장자리 목록을 만듭니다.
[17,50,90,NA,NA;
80,67,NA,NA,NA;
33,31,32, NA,NA;
33,31,32,NA,NA;
354,56,87,97,32;
....]
내가 R: Adjacency list to Adjacency matrix를 사용하여 시도하지만,이 단지 작품 내 인접리스트의 경우 : 나는 R. 다음과 같이 (빈 항목이 NA 각 행 항목의 다른 양을 가지고 있으며, 있습니다)되고 인접리스트의 예를 사용하고 있습니다 두 개의 항목이 있습니다 (즉, 한 그룹에 두 개 이상의 이웃이 있음). 가장자리 목록을 얻지 만 내 목록의 처음 두 항목 만 고려합니다.
는 또한 From list to adjacency matrix를 사용하지만 오류로했다 igraph
및 make_graph(unlist(mydata))
사용하여 시도 : "At type_indexededgelist.c:117 : cannot create empty graph with negative number of vertices, Invalid value"
내가 계정으로 네트워크에있을 것 가중치를 취하는 인접 행렬 필요를 (같은 항목 31, 32에있는 경우 두 행, 그 다음 가장자리 무게는 2가 될 것입니다. 도움 주셔서 감사합니다.
대단히 감사합니다. 적용을 사용하는 두 번째 대답은 이웃으로 1, 3 번째 항목을 나열하는 행을 가질 수있는 방법이 있습니까? 예를 들어 세 번째 행의 값은 [17,90]입니다. 이는 내 데이터에서 첫 번째 및 여덟 번째 항목을 나열하는 것과 같은 추가 항목에 대해 계속됩니다. –
@CatalinaGutierrez'? expand.grid()'및/또는'? combn() '을 확인하고 싶을 수도 있습니다. – lukeA
마지막 코멘트를 무시하십시오. 업데이트 : 나는 co = combn (e [[1]], 2)'에 의해 빗을 사용하려고 시도했다. 여기서 e는 apply를 사용하는 것이다. 나는 data.frame으로 변환하고 transpose를 사용하여 가장자리 목록을 얻습니다. [17,50; 17,90; 50,90]. 모든 값에 대해이 작업을 수행 할 수 있었고 완전한 가장자리 목록을 얻을 수있었습니다. 그러나 이것을 그래프와 인접 행렬로 바꿀 때 반복되는 쌍을 다시 말해야한다고 생각합니다. 나는 이것을 가중치 된 인접 행렬과 그래프로 바꾸어야한다. 예를 들어 [17,50]이 내 가장자리 목록에 두 번 나타나면 17 ~ 50 사이의 가장자리의 가중치가 2임을 의미합니다. 어떤 아이디어? 다시 감사합니다! –