반응형
Notice
Recent Posts
Recent Comments
Link
Today
Total
07-05 05:44
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
관리 메뉴

iOS 개발 기록 블로그

R의 함수 2편 (일반, 변환, 그룹 함수) - ifelse, is.na, aggregate, format 본문

R

R의 함수 2편 (일반, 변환, 그룹 함수) - ifelse, is.na, aggregate, format

crazydeer 2021. 11. 19. 12:01
반응형

emp 테이블

 

 

일반 함수

SQL R
nvl in.na
decode ifelse
case ifelse

 

ifelse

예제 1) 이름, 월급, 등급을 출력하는데 월급이 1500 이상이면 등급을 A 출력하고 아니면 B 출력하시오

 

결과)

답)

data.table(name=emp$ename, salary=emp$sal, grade=ifelse(emp$sal>=1500, 'A', 'B'))

 

 

예제 2) 이름, 월급, 등급을 출력하는데 월급이 3000 이상이면 A 출력하고 월급이 1500 이상이고

3000보다 작으면 B 출력하고 나머지 사원들은 C 출력하시오

 

결과)

답)

data.table(name=emp$ename, salary=emp$sal, 
           grade=ifelse(emp$sal>=3000, 'A', ifelse(emp$sal>=1500, 'B', 'C')))

 

 

 

예제 3) 이름, 입사일, 보너스를 출력하는데 1980년도에 입사했으면 보너스를 A 출력하고 1981년도에

입사했으면 보너스를 B 출력하고 1982년도에 입사했으면 보너스를 C 출력하고 나머지 년도는 D 출력되게 하시오

 

결과)

답)

data.table( name=emp$ename, hiredate=emp$hiredate, 
           bonus=ifelse( year(emp$hiredate) == '1980', 'A',
                            ifelse(year(emp$hiredate) == '1981', 'B',
                                   ifelse(year(emp$hiredate) == '1982', 'C', 'D'))))

 

 

is.na

예제 1) 이름과 커미션을 출력하는데 is.na 함수를 이용해서 커미션이 NA 사원들을 출력하시오

 

 

 

ifelse + is.na

예제 1) 이름과 커미션을 출력하는데 커미션이 NA 사원들은 no comm 이란 글씨로 출력되게 하시오

 

결과)

답)

data.table(name=emp$ename,
           commission=ifelse(is.na(emp$comm), 'no comm', emp$comm))

 

해석) 

ifelse(조건, 참일 경우, 거짓일 경우)

emp 테이블의 comm이 NA값이면 'no comm' 이라고, 값이 있으면 그 값을 출력하라는 의미입니다.

 

 

 

 

 

변환 함수

SQL R
to_char as.character
to_number as.integer
to_date as.Date
  as.factor
  format 함수

 

fotmat 함수

format(as.Date(emp$hiredate), '%A')

%Y 년도 (4자리)
%y 연도 (2자리)
%m
%A 요일
%d
%H 시간
%M
%S
 

 

 

 

 

그룹 함수

SQL R
max max
min min
sum sum
avg mean
count length (가로)
table (세로)

 

 

예제 1) 게시글 최상단에 emp 테이블에서 직업이 SALESMAN인 사원들 중 최대 월급을 출력하시오

 

 

예제 2) 30 부서번호인 사원들 중에서 최소 월급을 출력하시오

 

 

예제 3) 직업, 직업 최대 월급을 출력하시오

 

 

예제 4) 부서 번호, 최소 월급을 출력하시오

 

 

예제 5) 직업, 직업 인원 수를 출력하시오

 

 

tapply

tapply(그룹함수에 쓸 컬럼, 기준 컬럼명, 그룹함수)

 

예제 1) 입사한 년도(4자리), 입사한 년도 토탈 월급을 출력하시오 (가로로 출력)

 

답)

tapply(emp$sal,year(emp$hiredate), sum)

결과)

" Emp salary emp hiredate 별로 합계해라 "

 

 

 

반응형