2012-12-07 3 views
0

R로 작업하는 igraph에서 노드 속성을 추가하는 동안 몇 가지 문제가 있습니다. journal.txt라는 텍스트 목록을 만들고 내 그래프의 노드에 속성을 지정하려고합니다. 다른 텍스트 또는 숫자 목록과 함께, 나는 전혀 문제가 없었지만 이것으로 나는 가지고있다. 내가 txt 파일을 읽을이와igraph에서 노드에 텍스트 속성 추가 R

, 문자로 읽을 하나가 있지만 내가없이도 시도하지만, 바로 첫 번째 열을 읽고 내가 저장하면 그 다음

journalList = read.csv("c:/temp/biblioCoupling/journals.txt", header=FALSE) 
journalLR = (journalList[1:303,1]) 
journalLR = as.character(journalLR) 
V(g)$journalName = journalLR 

작동하지 않습니다 파일,

write.graph(gr,"filename.gml",format=c("gml"), creator="Claudio Biscaro") 

노드에 추가 한 모든 다른 속성을 볼 수 있지만이 것은 아닙니다.

journalLR의 일부 항목의 길이가 15자를 넘을 수 있기 때문일 수 있습니까? 내가 왜 그럴 수 없다는 것을 전혀 모른다.

답변

0

코드를 재현 할 수 없지만 확실히 말할 수는 없지만 V(g)$journalName은 복잡한 속성입니다. 즉, 값의 벡터가 아니라 값 목록입니다.

확인하려면 str(g)을 수행 한 다음 journalName 특성 뒤에 오는 코드 문자를 확인하십시오. x이면 복잡하고, c이면 문자입니다. 이 문제이며, 당신이 정말로 목록이 필요하지 않은 경우

는 다음 해결하는 것입니다

g <- remove.vertex.attribute(g, "journalName") 
V(g)$journalName <- journalName 
0

한 번에 하나씩 추가하여 해결. 그거 좀 이상해. 오랫동안 노력한 후에!

for (i in 1:length(journalLR)) 
{ 
    V(g)[i]$journalName = journalLR[i] 
} 

아마도 형식적으로 좋은 해결책은 아니지만 작동합니다.