본문 바로가기
프로그래밍/R

[R] as.Date, lubridate() ('생년월일으로 나이를 계산하기')

by research_notes 2024. 5. 19.
728x90
반응형

 

1. 일반적인 방법 (별도의 패키지 사용 없이)

일반적으로, 나이 계산 시 오늘 날짜와 생년월일을 비교하여 전체 나이를 구합니다. 이를 위해 R에서 Sys.Date() 함수로 현재 날짜를 가져

오고, as.Date() 함수를 사용하여 생년월일을 Date 객체로 변환합니다.

나이 계산 방법

  1. 현재 날짜 구하기: Sys.Date() 함수를 사용합니다.
  2. 생년월일을 Date 형식으로 변환: as.Date() 함수를 사용합니다.
  3. 나이 계산: 두 날짜의 차이를 계산한 후, 이를 연도로 변환합니다.
# 생년월일 데이터 예시
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() 함수 (예시, 두가지조건 한꺼번에 찾기)

 

[R] which() 함수 (예시, 두가지조건 한꺼번에 찾기)

1. which() 함수?: 함수는 논리 벡터에서 TRUE인 요소의 인덱스를 식별하는 데 사용됩니다. : 데이터 집합에서 특정 조건을 충족하는 요소의 위치를 찾거나 데이터를 추출하는 데 매우 유용함. "어

kimtutor.tistory.com

2024.05.19 - [프로그래밍/R] - [R] intersect() 함수 (데이터 공통 요소 찾기)

 

[R] intersect() 함수 (데이터 공통 요소 찾기)

1. intersect() ??: 두 벡터, 리스트 또는 다른 데이터 구조 사이의 공통 요소를 찾는 데 사용.: 함수는 두 입력 벡터 모두에 존재하는 값을 포함하는 벡터를 반환하며, 중복은 제거. : 데이터 세트를

kimtutor.tistory.com

반응형

 

728x90
반응형