- 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 |
- tapply
- 티스토리챌린지
- 시각화
- r
- MVC
- sigmoid
- Python
- scheduledTimer
- Request
- 명령어
- 연산자
- ReLU
- SWIFT
- barplot
- deeplearning
- rxswift
- cocoapods
- rest api
- 딥러닝
- HTTP
- decode
- struct
- 오블완
- swiftUI
- Optional
- Linux
- SQL
- Observable
- substr
- ios
iOS 개발 기록 블로그
R의 함수 1편 (문자, 날짜, 숫자 함수) 본문

1. 문자 함수
SQL | VS | R |
upper | toupper | |
lower | tolower | |
substr | substr | |
replace | gsub | |
concat | paste |
2. 숫자 함수
SQL | VS | R |
round | round | |
trunc | trunc | |
mod | %% | |
power | ^ (예: 2^3) |
3. 날짜 함수
SQL | VS | R |
sysdate | sys.date() | |
add_months | difftime | |
months_between | 사용자 정의 함수 | |
last_day | 사용자 정의 함수 | |
next_day | 사용자 정의 함수 |
4. 일반 함수
SQL | VS | R |
nvl | in.na | |
decode | ifelse | |
case | ifelse |
5. 변환 함수
SQL | VS | R |
to_char | as.character | |
to_number | as.integer | |
to_date | as.Date | |
as.factor | ||
format 함수 |
6. 그룹 함수
SQL | VS | R |
max | max | |
min | min | |
sum | sum | |
avg | mean | |
count | length(세로) table(가로) |
Upper , Lower 함수
예제 1) 이름과 직업을 출력하는데 소문자로 출력하시오
답)
library("data.table") data.table(이름=tolower(emp$ename), 직업=tolower(emp$job)) |
결과)
예제 2) 이름이 scott인 사원의 이름과 월급을 조회하는데 scott을 소문자로 조회해도 조회되도록 하시오
답)
emp[tolower(emp$ename) == "scott", c("ename", "sal")] |
결과)
substr 함수
예제 3) 이름의 두번째 철자가 M인 사원들의 이름과 월급을 출력하는데 substr 함수를 이용해서 출력하시오
답)
emp[substr(emp$ename,2,2)=='M', c("ename", "sal")] |
결과)
Substr(emp$ename, 1, 2) : emp$ename이 첫번째 자리부터 두번째 자리까지 철자
예제 4) 이름을 출력하고 그 옆에 이름의 첫번째 철자부터 세번째 철자까지 출력하시오
답)
data.table(이름=emp$ename, "이름 세글자"=substr(emp$ename,1,3)) |
결과)
paste 함수
" 오라클의 연결 연산자와 비슷한 기능을 하는 함수 "
예제 5) paste 함수를 이용해서 이름과 직업을 아래와 같이 출력하시오
결과)
답)
paste(emp$ename, '의 직업은', emp$job) |
답 2)
data.table(paste(emp$ename, '의 직업은', emp$job)) |
예제 6) 이름과 연봉을 아래와 같이 출력하시오
결과)
답)
x <- emp[emp$emnae == "SCOTT", c("ename", "sal")] x data.table(paste(x$ename, '의 연봉은', x$sal*12, '입니다.')) |
설명)
data.table(연봉=emp$sal*12) emp[, c("ename", "sal*12")] |
c( ) 안에는 테이블에서 컬럼 자체를 가져오는 것이기 때문에 가공할 수 없습니다. 위의 코드 실행해볼 것
날짜 함수
예제 7) 오늘 날짜를 출력하시오
답)
예제 8) 이름, 입사한 날짜부터 오늘까지 총 몇일 근무했는지 출력하시오
답)
data.table(emp$ename, Sys.Date()-emp$hiredate) |
위의 답이 실행되지 않습니다. 왜냐하면
str(emp) str(Sys.Date()) |
해보면 hiredate 값이 factor이고 sys.date가 date입니다.
따라서 날짜로 형 변환해줘야 합니다.
data.table(emp$ename, Sys.Date()-as.Date(emp$hiredate)) |
오라클의 to_date와 비슷하다고 보면 됩니다.
결과)
예제 9) next_day 함수를 생성하시오. 보기와 같이 나오도록 해야함
SQL)
select next_day(sysdate, 'friday') from dual; |
보기)
next_day(Sys.Date(), '금요일') 18/05/11 |
답)
function(x,day){ for(i in 1:7){ check_date = x + i if (format(check_date,'%A') == day){ print(check_date) } } } |
next_day(Sys.Date(),'금요일') |
숫자 함수
제곱은 ^ 로 표기합니다.
예) 6의 9승은 6^9
나머지는 %% 연산자를 씁니다.
예) 10%%3 (결과: 1)
Round 함수
이상한 특징이 있습니다. R은 짝수를 좋아합니다.
122 -------------------------------- 123
Round(122.5)
123 -------------------------------- 124
Round(123.5)
결과)
Trunc 함수
숫자 3678.78 이고 2번째 행은 인덱스입니다.
3 | 6 | 7 | 8 | . | 7 | 8 |
-4 | -3 | -2 | -1 | 0 | 1 | 2 |
round(3678.78, 1)
round(3678.78, -1)
trunc(3678.78, 1)
trunc(3678.78, -1)
Trunc는 소수점 이하만 가능하다
'R' 카테고리의 다른 글
R Studio Cloud 사용법과 원형(pie) 그래프 시각화 (0) | 2021.12.16 |
---|---|
R 시각화 (막대그래프 예제 한방으로 끝내기) (0) | 2021.12.07 |
R merge 함수 (0) | 2021.12.01 |
R의 함수 2편 (일반, 변환, 그룹 함수) - ifelse, is.na, aggregate, format (0) | 2021.11.19 |
R 설치, 시작하기, 배워야 하는 이유, 자료구조, 연산자 기본 (0) | 2021.11.05 |