- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- sigmoid
- 티스토리챌린지
- tapply
- MVC
- scheduledTimer
- struct
- Observable
- rxswift
- 딥러닝
- 시각화
- barplot
- Linux
- Request
- ReLU
- Optional
- decode
- deeplearning
- 명령어
- substr
- ios
- HTTP
- r
- rest api
- 오블완
- cocoapods
- 연산자
- Python
- swiftUI
- SWIFT
- SQL
iOS 개발 기록 블로그
R의 함수 2편 (일반, 변환, 그룹 함수) - ifelse, is.na, aggregate, format 본문
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 별로 합계해라 "
'R' 카테고리의 다른 글
R Studio Cloud 사용법과 원형(pie) 그래프 시각화 (0) | 2021.12.16 |
---|---|
R 시각화 (막대그래프 예제 한방으로 끝내기) (0) | 2021.12.07 |
R merge 함수 (0) | 2021.12.01 |
R의 함수 1편 (문자, 날짜, 숫자 함수) (0) | 2021.11.10 |
R 설치, 시작하기, 배워야 하는 이유, 자료구조, 연산자 기본 (0) | 2021.11.05 |