programing

R에서 Excel 날짜 형식을 적절한 날짜로 변환하는 방법

css3 2023. 4. 10. 22:07

R에서 Excel 날짜 형식을 적절한 날짜로 변환하는 방법

저는 csv를 사용하고 있습니다만, 안타깝게도 42705라는 숫자 형식을 사용하여 날짜를 기록했습니다.2016년 1월 12일입니다.

러브리데이트 등의 패키지를 사용하여 R의 올바른 포맷으로 변환하고 싶습니다.그것을 처리할 수 있는 기능이 있나요?

사용할 필요가 없습니다.lubridate이를 위해 기본함수as.Date이 타입의 변환을 잘 처리합니다.비결은 원점을 제공해야 한다는 것입니다. 엑셀은 1899년 12월 30일입니다.

as.Date(42705, origin = "1899-12-30")
# [1] "2016-12-01"

열 유형을 보존하려면read_excel에서 기능하다readxl패키지.그러면 숫자 형식이 보존된 XLS 또는 XLSX 파일을 로드할 수 있습니다.

편집: 관련 XKCD

XKCD 연재만화

다음은 관리자와 경골 패키지를 사용하여 수행하는 다른 방법입니다.

install.packages("janitor")
install.packages("tibble")

library(tibble)
library(janitor)

excel_numeric_to_date(as.numeric(as.character(YourDate)), date_system = "modern")    

openxlsx패키지에서는xls date변환:

openxlsx::convertToDate(42705)
[1] "2016-12-01"

그리고 @Suren의 제안대로convertToDateTime허용한다datetime변환:

openxlsx::convertToDateTime(42705.5)
[1] "2016-12-01 12:00:00"

말씀드린 바와 같이, 매우 좋은 옵션입니다.

as.Date(42705, origin = "1899-12-30")

openxlsx::convertToDate(42705)

또 다른 방법은 다음과 같습니다.

format(as.Date(as.Date("1899-12-30") + 42705, "%d-%m-%Y"), "%d-%m-%Y")

출력 포맷을 변경할 수 있습니다.%d-%m-%Y

(우선 변환as.numeric문자로 가져오거나 공식으로 변환하는 경우:

format(as.Date(as.Date("1899-12-30") + as.numeric( number formatted as character), "%d-%m-%Y"), "%d-%m-%Y")

data.table 패키지를 사용하는 경우as.IDate()그 경우:

require(data.table)

as.IDate(42705, origin = "1899-12-30")
# [1] "2016-12-01"

다음과 같이 동작합니다.base::as.Date()여기서.

언급URL : https://stackoverflow.com/questions/43230470/how-to-convert-excel-date-format-to-proper-date-in-r