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
다음은 관리자와 경골 패키지를 사용하여 수행하는 다른 방법입니다.
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
'programing' 카테고리의 다른 글
bash 스크립트에서 파일의 첫 줄을 가져오려면 어떻게 해야 합니까? (0) | 2023.04.10 |
---|---|
문서의 일부에는 문서 검사기가 삭제할 수 없는 개인 정보가 포함될 수 있습니다. (0) | 2023.04.10 |
Bash 스크립트의 스크립트파일명은 어떻게 알 수 있나요? (0) | 2023.04.10 |
Windows에 /dev/null이 있습니까? (0) | 2023.04.10 |
InvokeAsync와 Begin의 차이점은 무엇입니까?WPF 디스패처 호출 (0) | 2023.04.10 |