4.1 if()

if() 함수가 사용되는 방식은 3가지가 있습니다. 첫번째 형식은 (조건)이 참(TRUE)이면 해당 명령어를 실행합니다. 두번째 형식은 else 문을 써서 조건이 참(TRUE)이 아니면 else 다음에 있는 명령어를 실행합니다. 세번째 형식은 else if를 써서 조건을 반복시키는 것입니다.

if (조건) {조건이 만족되면 실행}
if (조건) {조건이 만족되면 실행} else {조건이 만족되지 못하면 실행}
if (조건1) {조건1 만족 실행} else if (조건2) {조건2 만족 실행} else {불만족 실행}
# x가 0보다 크면 양수
x <- 7
if (x > 0) {
  print("양수")
}
#> [1] "양수"
# x가 0보다 크면 양수, 그렇지 않으면 음수
x <- -3
if (x > 0) {
  print("양수")
} else {
  print("음수")
}
#> [1] "음수"
# x가 90 이상이면 A, ..., 60 이상이면 D, 나머지(60미만)는 F
x <- 92
if (x >= 90) {
  print("A")
} else if (x >= 80) {
  print("B")
} else if (x >= 70) {
  print("C")
} else if (x >= 60) {
  print("D")
} else {
  print("F")
}
#> [1] "A"

아래 코드와 같이 브라켓을 사용하지 않고도 if()를 사용할 수 있으나 이해하기 어려우므로 사용하지 않는 것이 좋습니다. 브라켓({})을 사용하는 위 예제코드 방식으로 쓰는 것이 좋습니다.

# {}를 사용하지 않는 코드는 나중에 이해하기 어려우므로 추천하지 않습니다.
x <- 5
if (x > 0) print("양수") else print("음수")
#> [1] "양수"

조건이 2개 이상이 있는 경우나 조건결과를 반대로 할 경우에는 아래 논리연산자를 사용합니다. &그리고의 의미가 있고, |또는의 의미가 있습니다. !는 조건 결과를 반대로 뒤집습니다.

Table 4.1: 조건에 사용하는 논리 연산자
연산자 의미 수식예
& AND x > 3 & x < 7
| OR x < 3 | x > 7
! NOT !(x > 3)
x <- 25
y <- 75
if (x > 0 & y < 100) {
  print("TRUE 입니다")
} else {
  print("FALSE 입니다")
}
#> [1] "TRUE 입니다"