프로그래밍/R
[R] as.Date, lubridate() ('생년월일으로 나이를 계산하기')
research_notes
2024. 5. 19. 05:02
728x90
반응형
1. 일반적인 방법 (별도의 패키지 사용 없이)
일반적으로, 나이 계산 시 오늘 날짜와 생년월일을 비교하여 전체 나이를 구합니다. 이를 위해 R에서 Sys.Date() 함수로 현재 날짜를 가져
오고, as.Date() 함수를 사용하여 생년월일을 Date 객체로 변환합니다.
나이 계산 방법
- 현재 날짜 구하기: Sys.Date() 함수를 사용합니다.
- 생년월일을 Date 형식으로 변환: as.Date() 함수를 사용합니다.
- 나이 계산: 두 날짜의 차이를 계산한 후, 이를 연도로 변환합니다.
# 생년월일 데이터 예시
birthdates <- c("1990-05-24", "1985-12-15", "2000-01-01")
# 문자열을 Date 객체로 변환
birthdates <- as.Date(birthdates)
# 현재 날짜
current_date <- Sys.Date()
# 나이 계산
ages <- as.integer(format(current_date, "%Y")) - as.integer(format(birthdates, "%Y"))
# 생년월일이 올해의 생일을 지났는지 확인하여 조정
ages <- ages - (format(current_date, "%m-%d") < format(birthdates, "%m-%d"))
# 결과 출력
print(ages)
[1] 33 38 24
2. lubridate() 패키지 사용
install.packages("lubridate") #패키지 설치
library(lubridate) #패키지 불러오기
# 생년월일 데이터
birthdates <- c("1990-05-24", "1985-12-15", "2000-01-01")
# 문자열을 Date 객체로 변환
birthdates <- as.Date(birthdates)
# 현재 날짜
current_date <- Sys.Date()
# 나이 계산
ages <- year(current_date) - year(birthdates)
# 생일이 올해 지났는지 확인하여 조정
ages <- ages - (month(current_date) < month(birthdates) | (month(current_date) == month(birthdates) & day(current_date) < day(birthdates)))
# 결과 출력
print(ages)
[1] 33 38 24
- 이 코드는 각 생년월일에 대해 현재 날짜를 기준으로 나이를 계산한다. lubridate의 year(), month(), day() 함수를 사용하여 생일이 이미 지났는지 확인하고, 아직 지나지 않았다면 나이에서 1을 빼서 계산.
2024.05.19 - [프로그래밍/R] - [R] which() 함수 (예시, 두가지조건 한꺼번에 찾기)
2024.05.19 - [프로그래밍/R] - [R] intersect() 함수 (데이터 공통 요소 찾기)
반응형
728x90
반응형