# [ 단축키 ]
# - ctrl + enter : 명령어 단위 실행
# - ctrl + shift + c : 주석 처리 / 해제
# - ctrl + o : 파일열기
df1 <- read.csv('emp.csv') # 로딩 가능
sum(df1$SAL)
# 변수
# 상수나 명령어의 결과를 저장하기 위한 객체(이름 부여)
# 변수 명명규칙 : 숫자 시작 불가, 예약어 사용 불가, 특수기호 사용 자제(_가능)
# 한 자리의 변수 비추
# 1. 생성
a1 <- 1
a1 + 3
a2 <- 'abcd' # 문자열 : '', "" 로 전달
a3 <- '2022/7/14' # 날짜가 아닌 문자로 인식
a4 <- Sys.Date()
# 2. 변수 타입 확인
class(a1)
class(a2)
class(a3)
class(a4)
# 3. 산술 연산
a1 + 100
a5 <- '10'
a1 + a5 # 연산 에러(문자와 숫자 연산불가, 묵시적 형 변환 불가)
# 4. 형 변환 함수
# 1) as.Date() : 날짜로의 파싱
a3 <- as.Date(a3) # 포맷 생략 가능
class(a3) # 날짜 타입
as.Date('07/14/2022') # 년월일 순서가 아닌 경우 자동 파싱 불가(포맷 전달 필수)
as.Date('07/14/2022', '%m/%d/%Y') # 파싱 가능
# 참고 - 날짜 포맷 확인 방법
help("strftime") # 날짜 포맷 확인 가능
# strftime : str <- time(f:format)
# strptime : str -> time(p:parsing)
# %Y : 4자 연도
# %y : 2자 연도
# %m : 월
# %d : 일
# %H : 시
# %M : 분
# %S : 초
# %w : 요일(숫자, 0:일요일)
# %A : 요일(문자)
# 2) as.character() : 문자로 아닌 값을 문자로 변경
as.character(a3, '%w') # 4(목요일)
as.character(a3, '%A') # 목요일
as.character(a3, '%Y/%m/%d') # 문자 리턴
# 3) as.numeric() : 문자로 숫자로 변경
a1 + as.numeric(a5) # 연산 가능
# 오늘의 날짜 출력
Sys.Date() # 오늘 날짜(시분초 출력 X)
Sys.time() # 오늘 날짜(시분초 출력)
# [ 연습 문제 ]
# 2022/01/01일로부터 100일 뒤 날짜의 요일 출력
'2022/01/01' + 100 # 연산 불가
d1 <- as.Date('2022/01/01') + 100
as.character(d1, '%A')
as.character(as.Date('2022/01/01') + 100, '%A')
# [ 연습 문제 ]
# emp.csv 불러온 후 각 직원의 근무일수 출력
df1 <- read.csv('emp.csv')
class(df1$HIREDATE)
df1$WDAY <- Sys.Date() - as.Date(df1$HIREDATE) # 컬럼 추가
df1
# [ 참고 - 두자리 연도 해석]
as.Date('70/12/11') # "0070-12-11"
as.Date('70/12/11', '%y/%m/%d') # "1970-12-11"
as.Date('68/12/11', '%y/%m/%d') # "2068-12-11"
# 20XX : 00~68년 (in oracle : 00~49년)
# 19XX : 69~99년 (in oracle : 50~99년)
# [ 참고 - 함수 사용 방법 ]
# sql과는 다르게 함수의 각 인수는 이름을 가짐
# 인수는 이름과 함께 전달 가능(순서대로 전달시에만 생략 가능)
help(read.csv)
read.csv(file='emp.csv')
read.csv('emp.csv') # 첫번째 인수에 전달
# f1(a,b,c)
# f1(1,2) => a=1, b=2로 전달
# f1(b=1, c=2) => b=1, c=2로 전달
# 날짜 패키지(lubridate)
install.packages('lubridate')
library(lubridate)
year(d1) # 연도 추출(숫자 리턴)
as.character(d1, '%Y') # 연도 추출(문자 리턴)
month(d1) # 월
day(d1) # 일
hour(Sys.time()) # 시
minute(Sys.time()) # 분
second(Sys.time()) # 초
wday(Sys.Date()) # 요일(숫자리턴, 일요일:1)
wday(Sys.Date(), label = T) # 요일(문자리턴)
d1 + 100 # 100일 후
d1 + months(3) # 3개월 후
d1 + years(3) # 3년 후
Sys.time() + hours(3) # 3시간 후
'빅데이터 공부 > R' 카테고리의 다른 글
R자료구조 리스트(생성,색인,수정), 문자열함수, NA치환, 형확인함수 (0) | 2022.07.28 |
---|---|
R 자료구조 - 벡터(생성, 연산, 색인) 논리연산자, 포함연산자, 문자열함수, 시퀀스 객체 (0) | 2022.07.27 |
R 데이터 색인, 데이터프레임 (0) | 2022.07.26 |