R & Gephi : 네트워크의 가장자리가 RGEXF 패키지를 사용하여 제대로 가져 오지 않습니다.
-
21-12-2019 - |
문제
r 패키지 "rgexf"
에 문제가 있습니다. 특히, 나는 Gephi로 가져 오는 네트워크의 에지 에 문제가있다. r에서는 정점의 데이터베이스를 생성 할 수 있습니다
>vertices
Id Label
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
10 10 10
.
및 가장자리 데이터베이스 (정확한 단일 가장자리)
>edges
Source Target
1 5 9
.
를 사용하여 .gexf 파일을 만듭니다.
>write.gexf(output = path_gexf, nodes = vertices, edges = edges, defaultedgetype = "undirected")
.
여기서 path_gexf
는 출력 파일의 경로 일뿐입니다 (example.gexf 호출).
Gephi (버전 0.8.2 베타)를 사용하여 example.gexf를 엽니 다.
이미지 1 :
Gephi에서 가져 오기 보고서를 볼 수 있습니다 : 정점 수와 모서리의 수가 올바른 것입니다. 그래프 유형을 수동으로 변경하여 해제되지 않고 모든 데이터를 데이터 실험실 창으로 가져옵니다.
- 질문 1 . 이유는 Write.gexf 함수에서 이미 그것을 이미 수행했을 때 Import Report 윈도우에서 "미리 보호되지 않음"을 지정 해야하는 이유는 무엇입니까?
- Question 2. example.gexf 파일의 가져 오기를 수정하는 방법은 무엇입니까? r 코드 수준에서는 모두 부드럽고 정점 / 모서리가 내 코드로 올바르게 생성됩니다. 문제는 기피와 함께 발생합니다.
image2
가져 오기 후 그래프 유형이 자동으로 "Directed"및 에지가 실제로 가져 오지 않음을 알 수 있습니다.
이미지 3
우리는 정점 목록을 가지고 있습니다 : 모두 괜찮습니다. 레이블과 ID가 올바르게 가져옵니다. 이미지 4
가장자리에 대한 데이터 실험실 창을 볼 수 있습니다. 이미 이미지에 표시된 것처럼 가장자리가 없습니다. 2. 정말로 가장자리를 가져 오지 않는 이유를 이해하지 못합니다.
비고 : 나는 가장자리 가져 오기에 관한 문제가 많은 .gexf 파일을 가지고 있습니다. 대부분의 경우 "소스"및 "Target"의 보정되지 않은 가장자리 만 수입됩니다. 이상하게 충분히 평행 한 가장자리는 항상 그들의 복수에 따라 적절하게 계산됩니다.
긴 게시물에 대해 사과드립니다.
편집 : 더미 R 코드가있는 일부 테스트
@james tobin의 코드 (감사합니다!)를 사용하여 일부 테스트를했습니다. 내 PC에서도 잘 작동합니다. 나는 2 개의 가장자리가있는 그래프로 테스트를했습니다. 테스트는 모두 괜찮 았습니다. 그런 다음
를 사용하여 3,4 가장자리 케이스로 이동했습니다.require(rgexf)
vertices <- as.data.frame(cbind(seq(1,10),seq(1,10)))
colnames(vertices) <- c('Id','Label')
edges <- as.data.frame(cbind(c(5,1,2),c(1,1,3)))
colnames(edges) <- c('Source','Target')
write.gexf(nodes=vertices,edges=edges,
defaultedgetype = "undirected")
.
및
require(rgexf)
vertices <- as.data.frame(cbind(seq(1,10),seq(1,10)))
colnames(vertices) <- c('Id','Label')
edges <- as.data.frame(cbind(c(5,1,4,2),c(2,3,1,2)))
colnames(edges) <- c('Source','Target')
write.gexf(nodes=vertices,edges=edges,
defaultedgetype = "undirected")
.
두 경우 모두 XLM 코드가 올바른 W.R.T입니다. 노드 및 가장자리 ID, 레이블, 소스 및 대상.
문제는 어디에 있습니까? 3 개의 가장자리 케이스에서 Gephi의 가져 오기 보고서는 올바른 반면 데이터 실험실 가장자리 창이 가장자리가 표시되지 않습니다
<edge id="1" source="1" target="1" weight="1.0"/>
.
4 가장자리의 경우 가장자리
<edge id="0" source="5" target="2" weight="1.0"/>
.
가 누락되었습니다.
나는 Gephi 0.8.2의 버그가 있고 내 코드가 아닌 버그가 있다고 믿기 시작합니다.
모든 제안 / 댓글?
해결책
질문 1 : GEXF 파일에서 그래프를 이미 지정했지만,이를 클릭하면이를 클릭하면 적어도 큰 거래가 아닙니다.안전성 관점에서 사용자가 잠재적으로 잘못 선택하는 것보다 수입하는 그래프의 종류를 두 번 확인하는 것이 더 쉽습니다.2 초, 거래가 크지 않아.
질문 2 : 예제를 복사
require(rgexf)
vertices <- as.data.frame(cbind(seq(1,10),seq(1,10)))
colnames(vertices) <- c('Id','Label')
edges <- as.data.frame(cbind(5,9))
colnames(edges) <- c('Source','Target')
write.gexf(output='testgex.gexf',nodes=vertices,edges=edges,
defaultedgetype = "undirected")
.
그러나 나는 가장자리에 어떤 문제도 가지고 있지 않습니다.
아마도 실패한 정확한 코드를 포함 할 수 있습니까?아마도 가장자리가 Data.frame 형식이 아닙니다.오류를 복제 할 수 없었기 때문에 짐작하기 때문에