2012-11-28 3 views
9

이 날짜 형식을 어떻게 파싱 할 수 있습니까? 이 콜론을 점으로 변경해야합니까 아니면 누군가가 더 나은 해결책을 알고 있어야합니까?콜론은 초와 밀리 초 사이의 날짜 형식입니다. R에서 구문 분석하는 방법?

strptime(gsub(":", ".", x), "%Y.%m.%d %H.%M.%OS3") 

> x <- "2012.01.15 09:00:02:002" 
> strptime(x, "%Y.%m.%d %H:%M:%S:%OS") 
[1] "2012-01-15 09:00:02" 
> strptime(x, "%Y.%m.%d %H:%M:%OS") 
[1] "2012-01-15 09:00:02" 
> x <- "2012.01.15 09:00:02.002" 
> strptime(x, "%Y.%m.%d %H:%M:%OS") 
[1] "2012-01-15 09:00:02.001" 
+0

두 답변이 정확 하나입니다 :

여기에 당신이 할 수있는 하나의 방법입니다! 하지만 개인적으로 저는 gsubfn을 선호합니다 : D –

+1

마지막 콜론을 지난 번호가 분 초임을 실제로 알고 있습니까? 그것은 프레임과 같은 다른 것일 수 있습니다. – John

답변

8

여기에는 약간의 차이가 있습니다. ?strptime로 메모 'strptime'%의 OS '의

입력 초 분별 초를 포함한다. , 초 값 인 경우 44.234, %OS 또는 %OS344.234을 나타냅니다

는 조금, %OS이 소수점 이하의 초 --- 단지 소수 부분 초을 포함하여 초 를 나타낸다는 것을 강조하기 not .234

그럼 해결책은 실제로 :.으로 대체하는 것입니다.

x <- "2012.01.15 09:00:02:002" 
strptime(gsub(":", ".", x), "%Y.%m.%d %H.%M.%OS") 
+0

+1. 나는 OP가 이미 모든 것을 알고 있다고 생각합니다 - 당신은 그가 시도한 마지막 일에서 그 사실을 사용한다는 점에 유의할 것입니다. 그러나이 질문을 건너오고있는 다른 사람들에게 유용 할 것 같습니다. – ruakh

+0

@ruakh - 좋은 지적이고, 네가 옳다고 생각한다. 나는'? strptime'의 인용문이 그 요지를 분명하게하는 것을 좋아한다. –

+0

예 사실 콜론을 점으로 변환했습니다. 빠른 답장을위한 Thx :) –

2

을 부정 할 것인가?

+0

'sub'는 각 인스턴스가 아닌'.'의 첫 번째 인스턴스를'.'로 대체합니다. @ JoshO'Brien의 대답에 따라'gsub'가 필요합니다. – Justin

+0

@Justin : 당신이 댓글을 달았을 때 이미 그것을 고쳤습니다. 고맙습니다. :-) – ruakh