2012-12-14 4 views
0

cond ? a : b 또는 if(cond, a, b) (R은 cond 조건이 TRUE/FALSE 인 벡터를 반환 함)을 찾고 있습니다. 나는 많은 경우에 내가 할당과 트릭을 사용할 수 있다는 것을 알고 :if 함수 또는? : operator in R

tmp[cond] <- a 

하지만 난 아무것도 변경하지 않는 한이 나를 위해 좋지 않다 - 난 그냥 표현에서 바로 R-값을 얻을 필요가있다. 감사! ab 단일 값 또는 둘 cond과 같은 길이가있는 경우

답변

4
ifelse(cond, a, b) 

트릭을 할 것입니다. 그렇지 않으면, 당신은 cond 길이가 1 a이 있어야하며 b는 길이를 가질 수

if (cond) a else b 

있습니다.

+0

대단히 감사합니다 !! – TMS

+3

조건의 복잡성에 따라 논리 비교를 수행하여 더 빠른 코드를 얻을 수 있습니다 (예 : 'foo <-a*(bar> 0) + b * (bar <0)'이다. –

+0

@CarlWitthoft : a, b가 문자열 인 경우 실제로 작동하지 않습니다. – TMS