2014-11-02 4 views
0

데이터 세트에 두 개의 열이 있으며 인자는 "10may2010 5p.m.p.m."형식입니다.인자를 날짜와 시간으로 변환 R

위의 요소를 R이 날짜/시간 객체로 읽고 싶습니다.

다음, 나는 열 1의 날짜와 시간은 열의 날짜 - 시간 전에 2

감사 있는지 알고 싶습니다!

+0

값이 일종의 표준 날짜/시간 형식이 아닙니다. 정말로 시간 범위가 있고 기본 R에는 기본적으로이를 지원하는 데이터 유형이 없습니다. 시작 시간/종료 시간 쌍으로 분할해야합니다. 다시 말하지만 표준 형식처럼 보이지 않기 때문에 필 요한 부분에 대해이 값을 직접 파싱해야합니다. 모든 값은 정확히 같은 형식으로되어 있습니다 (즉, 두 자리 날짜, 세 문자 월 약어, 네 자리 연도, 공백, 시간 (1-12), (am/pm), 공백 ""공백, 시간 (1 -12), (am/pm))? – MrFlick

+0

예, 오후 12시를 "정오" – Zslice

답변

0

이 문자열을 시퀀스로 구문 분석하는 적절한 방법인지는 잘 모르겠지만 제대로 작동하는 것으로 보이고 올바른 방향으로 움직여야합니다 (그리고 나는 좋은 비트도 배웠습니다). 당신이 원하는 수 있습니다으로

x <- gsub("[.]|to ", "", "10may2010 5p.m. to 7p.m.") 
s <- strsplit(x, "\\s+")[[1]] 
dts <- strptime(paste(s[1], s[-1]), "%d%b%Y %I%p") 
# [1] "2010-05-10 17:00:00 PDT" "2010-05-10 19:00:00 PDT" 
seq(dts[1], dts[2], by = "hour") 
# [1] "2010-05-10 17:00:00 PDT" "2010-05-10 18:00:00 PDT" 
# [3] "2010-05-10 19:00:00 PDT" 

는 또한 lubridate 간격 클래스를 보라.

library(lubridate) 
interval(dts[1], dts[2]) 
# [1] 2010-05-10 17:00:00 PDT--2010-05-10 19:00:00 PDT 
관련 문제