R
[R] 조건제어문 - if, ifelse, switch
ㄷㅐ장님
2022. 1. 14. 02:58
조건제어문
조건의 흐름을 제어
1. if문
if(조건){
조건이 참일때 수행
} else {
조건이 거짓일때 수행
}
⇒ 들여쓰기 주의
[문제76] x변수에 2를 입력한후 그 변수에 값이 2의 배수면 "2의 배수" 출력, 아니면 "2의 배수가 아니다" 출력해주세요.
2. ifelse 함수
ifelse(조건,참,거짓)
ifelse(조건,참,ifelse(조건,참,거짓)) ⇒ 중첩가능
[문제77] x 변수에 1부터 100까지 입력한 후 짝수값은 자신의 값에 10을 곱한 값으로 수정하세요.
[문제78] x <- c(2,10,6,4,3,NA,7,9,1) x 변수에 NA가 있으면 0으로 설정하세요.
[문제79] last_name, salary, commission_pct, commission_pct NA 면 salary * 12, 아니면 (salary * 12) + (salary * 12 * commission_pct)을 수행하세요.
더보기
더보기
df <- data.frame(name=employees$LAST_NAME,
sal=employees$SALARY,
com=employees$COMMISSION_PCT
nacom=ifelse(is.na(employees$COMMISSION_PCT),employees$SALARY * 12,
(employees$SALARY * 12) + (employees$SALARY * 12 * employees$COMMISSION_PCT)))
df[order(df$nacom,decreasing = T),]
doBy::orderBy(~-nacom,df)
[문제80] last_name, salary, 급여가 10000 이상이면 A, 5000이상 10000보다 작으면 B, 나머지는 C가 입력되어 있는 새로운 컬럼을 생성하세요. 컬럼이름은 name, sal, level 로 설정하세요.
더보기
더보기
df <- data.frame(name=employees$LAST_NAME,
sal=employees$SALARY,
level=ifelse(employees$SALARY>=10000,'A',ifelse(employees$SALARY>=5000,'B','C')))
doBy::orderBy(~level-sal,df2)
3. switch
: 변수값에 따라 조건에 맞는 실행문을 수행하는 함수
switch(변수, 실행문1, 실행문2...)