ch0nny_log

[빅데이터분석] R _ 19. 날짜연산 본문

빅데이터 분석(with 아이티윌)/R

[빅데이터분석] R _ 19. 날짜연산

chonny 2024. 6. 27. 15:56
SQL VS R
sysdate Sys.Date()
months_between  difftime
add_months lubridate 패키지 이용
last_day lubridate 패키지 이용
next_day lubridate 패키지 이용

 

※ R에서 날짜 연산을 하려면 반드시 날짜형으로 변환해야 함

문제 1. EMP 데이터 프레임의 hiredate가 어떤 데이터 유형인지 확인하시오. 
str(emp)​

서명: csv 파일의 데이터를 불러와서 데이터 프레임을 구성하게 되면
        R이던 파이썬던 둘 다 날짜형이 아니라 문자형으로 만들어집니다.

문제 2. r에서 오늘 날짜를 출력하시오.
Sys.Date()​
★ 문제 3.(빅분기 실기 유형 1) 아래의 SQL을 R로 구현하시오.
1) SQL
select ename, sysdate-hiredate
	from emp;​

2) R
  1. 날짜 데이터가 문자로 되어 있어 출력이 안됨 
Sys.Date()- as.Date(emp$hiredate) 
## 날짜에서 문자를 빼려고 했기 때문에 출력이 안됨
## 문자를 날짜로 변환해줘야함/emp 데이터 프레임에 hire_date라는 새로운 변수가 생성됨​

  2. 날짜 데이터 문자를 숫자로 데이터 유형 변형하여 파생 컬럼 생성

emp$hire_date<- as.Date(emp$hiredate) --정답
emp
str(emp) -- 데이터 유형 확인

 

->emp데이터 프레임에 hire_Date라는 새로운 변수가 생성됨.
  
 3. 변형된 데이터로 날짜 확인
emp$hire_day<- Sys.Date()- emp$hire_date 
emp​

 


 difftime(날짜 2, 날짜 1)? 
--> 날짜 1~날짜2까지의 일수를 출력
문제 1. difftime 함수를 이용해서 입사한 날짜부터 오늘까지 총 근무 일수를 출력하시오 
emp$hire_day2 <- difftime(Sys.Date(),as.Date(emp$hiredate))
emp[    ,c('ename','hire_day','hire_day2')]