컴퓨터/R

R - 함수 ③ 날짜 함수

해피밀세트 2020. 4. 10. 17:15

 

 

 

1. 현재 날짜, 시간

# 현재 날짜
Sys.Date()

# 현재 날짜, 시간

Sys.time()

date()

 

2. 문자 날짜를 날짜형으로 변환하는 함수

  • 연도 두자리일 경우 현재연도를 기준으로 가장가까운 세기로 표현

as.Date("2020-04-10")
class(as.Date("2020-04-10"))
as.Date("2020/04/10")
as.Date("20200410")
as.Date("20200410",format='%Y%m%d')
as.Date("200410",format='%y%m%d')
as.Date("900410",format='%y%m%d')

2-1 format

%Y 세기를 포함한 년도(4자리)
%y 세기를 포함한 년도(2자리)
%m 숫자 달
%d 숫자 일
%B 문자 달
%b 문자 달 약어
%A 요일
%a 요일 약어
%u 숫자 요일1~7 월요일 1
%w 숫자 요일0~6 월요일 0
%H
%M
%S
%z timezone 시간
%Z timezone name

 

2-2 format 문자 사용 예

as.Date("2020 4 10",format='%Y %m %d')

as.Date("2020 4 10",format='%Y %B %d')

 

3. format() : 날짜를 문자형을 변환하는 함수

format(Sys.time(),'%Y%m%d')
format(Sys.time(),'%A %B %u %w %z %Z')

 

4. weekdays() : 요일을 출력하는 함수

weekdays(Sys.Date())
weekdays(as.Date('2020-01-16'))

 

5. 날짜 계산

# 일수를 기준으로 계산 가능

Sys.Date()+55
Sys.Date()-100
Sys.Date() - as.Date('2020-01-16')

# 숫자만 보기

as.integer(Sys.Date() - as.Date('2020-01-16'))

as.numeric(Sys.Date() - as.Date('2020-01-16'))

 

6. difftime() : 두 날짜간의 차이에 해당하는 일수를 리턴하는 함수

difftime(Sys.Date(),as.Date('2020-01-16'))
as.integer(difftime(Sys.Date(),as.Date('2020-01-16')))

 

7. as.difftime() : 시간의 차이

difftime('09:30:00','16:20:00')
as.difftime('09:30:00')-as.difftime('16:20:00')

 

8. lubridate

install.packages("lubridate")
library(lubridate)

today()  # Sys.Date()
now()    # Sys.time()

# 년도 추출

year(now()) # format(Sys.Date(),'%Y')

# 추출

month(now()) # format(Sys.Date(),'%m')

month(now(),label=T)

month(now(),label=F) #기본값

# 일추출

day(now())  # format(Sys.time(),'%d')

# 요일추출

weekdays(now())  # format(Sys.time(),'%A')

wday(now())

wday(now(),week_start = 1) # 월요일 기준

wday(now(),week_start = 7) # 일요일 기준

wday(now(),week_start = 1,label=T) # 월요일 기준

wday(now(),week_start = 7,label=T) # 일요일 기준

as.vector(wday(now(),week_start = 7,label=T))

# 날짜, 시간 더하기

now() + years(10)

now() + months(10)

now() + days(100)

now() + hours(100)

now() + minutes(100)

now() + seconds(100)

now() + hm('08:30')

now() + hms('08:30:50')

now() + hms('08:30:50')

#시간 바꾸기

date <- now()

year(date) <- 2000

month(date) <- 1

day(date) <- 1

hour(date) <- 1

minute(date) <- 1

second(date) <- 1

date

# 분기

quarters(now())

 

반응형

'컴퓨터 > R' 카테고리의 다른 글

R - 그룹 함수  (0) 2020.04.13
R - 중복 제거 / 정렬  (0) 2020.04.13
R - 함수 ② 숫자 함수  (0) 2020.04.10
R - 함수 ① 문자 함수  (0) 2020.04.10
R - 자료형 ⑥ data.frame(데이터프레임)  (0) 2020.04.09