앞서 R 날짜 데이터 기본에 대해 일부 알아봤고,
날짜 데이터 읽기 (1): 문자를 날짜로 데이터 변환 (as.Date) (tistory.com)
날짜 데이터 읽기 (1): 문자를 날짜로 데이터 변환 (as.Date)
R에서 날짜 변수들이 있는 경우가 종종 있는데요. 예를 들어 특정 칼럼 항목에 2020-01-01 같은 문자 값이 들어가 있으면 R이 무조건 날짜라고 인식하는 게 아니라 이건 날짜 변수야 라고 지정해주
approximation.tistory.com
이어서 칼럼이 연, 월 따로 떨어져 있을 때 어떻게 하면 둘이 합치는지에 대해서도 얘기했는데,
날짜 데이터 읽기 (2): 두 개 이상 날짜 칼럼 합쳐서 변환 (with, sprintf) (tistory.com)
날짜 데이터 읽기 (2): 두 개 이상 날짜 칼럼 합쳐서 변환 (with, sprintf)
앞서 말한 것처럼 날짜는 일반적으로 as.Date()로 변환하고 포맷만 잘 지정해주면 문자도 날짜로 잘 인식해주는데, 가끔 보다보면 날짜 칼럼이 각각 떨어져 있는 경우가 있습니다. 아래처럼 연도
approximation.tistory.com
사실 여기서 빼먹은 게, 연도랑 월을 합치고 나면 일(day)도 따로 붙여서, 연-월-일 세 개가 다 들어가는 구조로 만드는 게 여러모로 편합니다. 그래야 나중에 날짜 데이터 갖고 그래프 그리기도 쉽습니다. 그래서 만약에 윗 글처럼 연도랑 월 데이터만 있다면, 강제로라도 일 데이터를 (가상으로) 만들어서 날짜로 변환하는 걸 해볼까 하는데요. 일단 일이 들어가는 칼럼을 강제로 하나 만들고 (예: df$day<-1),
그리고 연, 월, 일 데이터 구조를 예를 들어 2022(연도)-5(월)-1(일) 구조로 된다고 하면 그냥 셋을 강제로 묶어주되 여기에 pattern을 줘서 Date로 읽게 하면 됩니다. 연도 칼럼이 year, 월 칼럼이 month, 일 칼럼이 day라고 하고 셋을 묶어서 Data 구조로 칼럼 하나 만들겠다고 하면, 아래처럼 하면 됩니다.
df$Date<-as.Date(with(df,paste(Year,Month,Day,sep="-")),"%Y-%m-%d")
그런데 연도 같은 경우 2012년으로 표현되기도 하지만 어떨 때는 그냥 12년으로 나오는 경우도 있고 한데, 그럴 때는 경우에 따라서 %Y %y 둘 중에 하나를 선택해줘야 합니다. 날짜 표시가 다 다른 경우가 있어서 그 때는 sep과 %를 잘 조절해서 표현해야줘야 합니다.
'R > R basic' 카테고리의 다른 글
조건 걸어 평균값 구하기 (0) | 2022.08.17 |
---|---|
missing value(결측값, 결측치) 0 (혹은 다른 값)으로 바꾸기 (0) | 2022.07.28 |
열려 있는 데이터(혹은 파일) 제거하기 #2: rm 함수 (0) | 2022.07.01 |
문자 앞이나 뒤에 억지로 숫자나 문자를 붙여야 할 때: str_pad 함수 (0) | 2022.06.25 |
정렬(오름차순, 내림차순)할 때 쓰는 함수: arrange (0) | 2022.06.23 |