English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

R 조건문

조건 구조는 프로그래머가 평가하거나 테스트할 조건을 하나나 여러 개 지정하며, 조건이 참일 때 실행할 문장(필수)과 조건이 거짓일 때 실행할 문장(선택적)을 요구합니다.

대부분의 프로그래밍 언어에서 표준적인 조건 구조의 일반 형식은 다음과 같습니다:

R 언어는 다음과 같은 유형의 조건문을 제공합니다:

  • if 문

  • if...else 문

  • switch 문

if 문

한 if 문은 불리한 표현식과 하나 이상의 문장으로 구성됩니다.

문법 형식은 다음과 같습니다:

if(boolean_expression) {
    // 불리한 표현식이 참일 때 실행될 문장
}

불리한 표현식 boolean_expression가 true일 때 여기의 코드를 실행합니다. false일 때는 실행하지 않습니다.

x <- 50L
if(is.integer(x)) {
   print("X는 정수입니다")
}

위 코드를 실행하면, 출력 결과는 다음과 같습니다:

[1] "X는 정수입니다"

if...else 문

한 if 문 뒤에는 선택적으로 else 문을 추가할 수 있습니다. else 문은 불리한 표현식이 거짓일 때 실행됩니다.

문법 형식은 다음과 같습니다:

if(boolean_expression) {
    // 불리한 표현식이 참일 때 실행될 문장
} else {
    // 불리한 표현식이 거짓일 때 실행될 문장
}

불리한 표현식 boolean_expression가 true일 때 then if 블록 내의 코드를 실행합니다. 불리한 표현식이 false일 때 else 블록 내의 코드를 실행합니다.

x <- c("google","w3codebox,"taobao")
if("w3codebox" in x) {
   print("포함되어 있습니다 w3codebox")
} else {
   print("포함되어 있지 않습니다 w3codebox")
}

위 코드를 실행하면, 출력 결과는 다음과 같습니다:

[1] "포함되어 있습니다 w3codebox"

여러 가지 조건을 검사할 때 if...else if...else를 사용할 수 있습니다:

if(boolean_expression 1) {
    // 불리한 표현식 boolean_expression 1 불리한 표현식이 참일 때 실행될 문장
} 2) {
    // 불리한 표현식 boolean_expression 2 불리한 표현식이 참일 때 실행될 문장
} 3) {
    // 불리한 표현식 boolean_expression 3 불리한 표현식이 참일 때 실행될 문장
} else {
    // 모든 루프 표현식이 false일 때 실행됩니다
}
x <- c("google","w3codebox,"taobao")
if("weibo" in x) {
   print("첫 번째 if가 weibo 포함되어 있습니다")
}3codebox" in x) {
   print("두 번째 if가 w 포함되어 있습니다")3codebox")
} else {
   print("찾을 수 없음")
}

위 코드를 실행하면, 출력 결과는 다음과 같습니다:

[1] "두 번째 if에 w3codebox"

switch 문

switch 문은 변수가 여러 가지 값에 해당할 때의 경우를 테스트할 수 있습니다. 각 값은 case로 불립니다。

문법 형식은 다음과 같습니다:

switch(expression, case1, case2, case3....)

switch 문장은 다음 규칙을 따라야 합니다:

  • switch 문장에서 expression 고정 상수 표현식입니다. 정수나 문자열이 될 수 있습니다. 정수라면 해당 위치의 case 위치 값을 반환합니다. 정수가 위치 범위에 없으면 NULL을 반환합니다。

  • 일치하는 값이 여러 개 있으면 첫 번째 값을 반환합니다。

  • expression문자열이면, case에서의 변수 이름에 해당하는 값을 반환합니다. 일치하지 않으면 반환 값이 없습니다。

  • switch는 기본 파라미터가 사용할 수 없습니다。

다음 예제는 세 번째 값을 반환합니다:

x <- switch(
   3,
   "google",
   "w3codebox",
   "taobao",
   "weibo"
)
print(x)

위 코드를 실행하면, 출력 결과는 다음과 같습니다:

[1] "taobao"

문자열이면 문자열 변수에 해당하는 값을 반환합니다:

you.like<-"w3codebox"
switch(you.like, google="www.google.com", w3codebox = "ko.oldtoolbag.com", taobao = "www.taobao.com")

위 코드를 실행하면, 출력 결과는 다음과 같습니다:

[1] "ko.oldtoolbag.com"

범위에 없는 정수는 NULL을 반환합니다.

> x <- switch(4,"google","w3codebox,"taobao")
> x
NULL
> x <- switch(4,"google","w3codebox,"taobao")
> x
NULL