[R_bigdata] R의 조건문 (if-else,if-elseif-else,삼항연산자,switch)

#day02_01_if.R

#조건문
#조건을 검사하여 참일 때와 거짓일 때 실행을 다르게 하는 방법

#if 조건문
if(TRUE){
  print('조건이 참이므로 실행합니다. ')
}

if(FALSE){
  print('조건이 거짓이므로 실행하지 않습니다.')
}

x <-  3
x < 2

#if-else 조건문
#무조건 if 또는 else 가 실행된다.
if(x < 2){
  print('x < 2 는 참')
}else{
  print('x < 2 는 거짓')
}

#if-elseif-else 조건문
#x가 2와 같은 경우에만 조건을 추가하기
#else if(){} : else if 로 조건을 무한으로 추가할 수 있다.
if(x < 2){
  print('x < 2 는 참')
}else if(x==2) {
  print('x ==2 ')
}else{
  print('x < 2 는 거짓')
}


#실습
#x가 3의 배수이면 x값의 제곱을 출력, x가 3의 배수가 아니면 0을 출력
x<-3
x%%3==0 #조건

if(x%%3 == 0){
  print(x*x) # ^을 활용할 수 있다. (x ^ 2)
}else{
  print(0)
}


#조건문2
#삼항연산자와 비슷한 형태의 조건문
#삼항연산자의 형태 ==>  조건?참:거짓
#ifelse(조건, 참, 거짓)
x<-3

ifelse(x%%3 == 0,x^2,0)

#switch 조건문
#if문에 비하여 가독성이 좋음
x<-'h'
switch (x,
  'a' = print('result : a'),
  'b' = print('result : b'),
  'h' = print('result : h')
)

switch (x,
  a = print('result : a'), #문자열 부분이지만 따옴표가 없어도 무방하다.
  b = print('result : b'),
  h = print('result : h')
)


#index(id부분)에는 한글 지양한다.
switch('id',
       id = '홍길동',
       age = '105',
       job = '도사'
       )

switch('id',
       'id' = '홍길동', #위의 switch 예시와 마찬가지로 따옴표가 붙는다 하더라도 무방하다.
       'age' = '105',
       'job' = '도사'
       )

#실습
#사용자로부터 입력을 받아 성적을 계산하는 프로그램만들기
#score 에 따른 성적 계산
#90점 이상 A, 80점 이상 B, 나머지 C

#사용자로부터 입력받기
score <- scan(nmax=1) # 숫자만 입력받을 수 있다.
score2 <- score %/% 10
switch( score2,
       9 = print('A'),
       8 = print('B')
       print('C')
       )

if(score>90){
  print('A')

}else if(score>80){
  print('B')
}else{
  print('C')
}

댓글