2014-11-14 13 views
0

두 개의 서로 다른 데이터 프레임을 비교하고 첫 번째 데이터 프레임의 내용을 수정할 수있는 R 함수를 작성하려고합니다. 비교 결과두 개의 동일하지 않은 데이터 프레임을 비교하고 두 번째 데이터 프레임을 기반으로 데이터 프레임 중 하나에서 문자열을 대체합니다.

static_graph_DF = data.frame(node= #10000 nodes#, label = rep("suceptible",10000)) 
infecteNodes_DF = data.frame(node=#random 1000 nodes from the above mentioned nodes #, label = rep("infected",1000)) 

내가 감염 (infecteNodes_DF이 static_graph_DF에 있는지 여부를 확인하여 즉)하는 static_graph_DF의 노드를 찾을 수있다 할과에서 static_graph_DF의 레이블을 대체 할 "취약" "감염"에 .

나는 병합을 사용하여() %, 일치() 기능에 %, 전 기능을 쓸 수 있다는 것을 알고 있지만, 아직도이 기능에 붙어 계속 진행 할 수 있지 않다.

답변

0

숫자 유형 node의 경우 기능이 필요하지 않습니다. 그렇게하는 동안

levels(static_graph_DF$label) <- c("suceptible","infected") 
static_graph_DF$label[infecteNodes_DF$node] <- "infected" 
+0

나는 다음과 같은 오류 메시지가 무엇입니까 "경고 메시지 :. : - 무효 요인 [<'에서 factor' ('* TMP *는'$ infected_nodes, 값 = C를 (NA를 감염 레벨, NA 생성 " – Jeremy

+0

나는 작은 데이터 세트, 긴 <- data.frame (UniqID = sample (letters [1:20], 20), label = rep ("sus ", 20)에 대한 해결책을 시도했습니다 short < data.frame (uniqID = sample (letters [1:20], 10), label = rep ("inf", 10)) 긴 $ label [짧은 $ UniqID] = "inf"그러나 아직도 나던, 위의 오류가 발생했습니다.이 데이터 집합을 사용하여 솔루션을 확인할 수 있습니다. – Jeremy

+0

레벨 이름을 사용하도록 첫 번째 문을 수정하십시오. 자세한 내용은 'help (levels)'를 확인하십시오. – vpipkt

관련 문제