2012-12-30 2 views
0

저는 R의 초보자이며 어떻게 이해해야합니까? ifelse.ifelse를 데이터 프레임에 사용하는 방법

ifelse(mydataframe$col1==mydataframe$col2 , 
    mydataframe$newCol<-TRUE, 
    mydataframe$newCol<-FALSE 
) 

mydataframe$col1col2 요인은 다음과 같습니다

내가 좋아하는 단순한 뭔가 시도했다. 이 경우 내 newCol에서 내가 이런 식으로 검증으로 잘못 항상 FALSE 될 것입니다 :

mydataframe$newCol<- mydataframe[mydataframe$col1==mydataframe$col2] 

나는 또한 내가 뭘하려에 대한 일반적으로 느린하는 for 루프를 사용하지 않습니다.

내가 뭘 잘못 했니?

+0

당신은'mydataframe $ 뉴콜 <같은 것을 의미합니까? – A5C1D2H2I1M1N2O1R2T1

+0

인자에 대한'=='는 인자가 다른 레벨을 가진다면 에러를 반환하기 때문에'as.character()'는 불필요하다고 생각합니다. –

답변

3

ifelse()은 2 층과 3 매개 변수로 값을 반환 받아 (당신은 쓰기 과제입니다).

보십시오 : 당신이 ifelse, ==이 같이 충분해야 사용할 필요가 없습니다 사실

mydataframe$newCol <- 
    with(mydataframe, 
     ifelse(col1 == col2, 
       TRUE, 
       FALSE)) 
2

:

mydataframe$newCol <- with(mydataframe, col1 == col2) 

그것은 부울 벡터를 반환합니다. as.character (mydataframe의 $의 COL1) == as.character (mydataframe의 $의 COL2)`-

+0

나는 그 질문이 매우 잘린 예제를 보여주고, 질문자가이 정확한 작업을 실제로 원하지 않는다고 희망한다. –

+0

질문은 ifelse()가 어떻게 작동하는지 (첫 줄) ;-)에 대한 이해입니다. – lgautier

관련 문제