2010-03-18 3 views
0

R에서 쉽고 빠르게 절을 처리하는 경우 TRUE/FALSE. 그러나 인수가 복잡 해지면 곧 너무 추해집니다.combind 문에 대해 간단하고 짧은 if 절

예 : 하나의 셀 (foo[1])의 값에 따라 행 (foo)에 대해 다른 연산을 실행하려고 할 수 있습니다. 종료되지 않습니다 100

뭔가 같은 : 간격이 0시 39분와 40:59, 60하자

(if foo[1] "in" 40:60){... 

사실, 나는 단지 적어도 두 가지 방법을 참조하면 조항과 두 개의 다른 문 첫 번째 간격에 대한 액션은 코드 하단에 어딘가에 있습니다. 더 많은 간격 (또는 다른 조건)이 있으면 점점 더 복잡해지고 있습니다.

간단한 구조와 멋진 디자인으로이 목적이나 다른 목적을위한 모범 사례가 있습니까?

+0

귀하의 질문에 완전히 따르기가 어렵다는 것을 발견했습니다. "스위치"라인에서 뭔가 말하는거야? –

+0

@ jorgusch - 문제에 대한 예제를 더 많이 제공하면 더 나은 응답을 얻을 수 있습니다. 샘플 데이터를 제공하고 출력을 원하는대로 표시하십시오. – Shane

+0

죄송합니다. 질문을 너무 많이 일반화하려고 시도했습니다. 행복한, 그 무사는 문제에 대한 정말 좋은 해결책을 주었다. 나는 다음에 그걸 간단하게 유지할 것이다. – jorgusch

답변

1

완전히 확실하지,하지만 나는 같은 것을 사용하는 것이 좋습니다 것입니다 : 당신이 어떤 기능 재미를 사용할 수 있습니다

f <- approxfun(0:100,c(rep(1,40),rep(2,20),rep(3,41)),method="c") 
fac <- f(foo) 
tapply(foo,fac,FUN,...) 

.

+0

그게 전부 좋은데! 감사! – jorgusch

0

전적으로 질문을 따르지 않았습니다. 당신은 스위치 진술을 찾고 있습니까? 이 예를 살펴 유무 :

ccc <- c("b","QQ","a","A","bb") 
for(ch in ccc) 
    cat(ch,":",switch(EXPR = ch, a=1,  b=2:3), "\n")