2014-04-22 2 views
0

에 % Y- % M- % d 개에서 POSIX 타임 스탬프로 변환 :내가이 형식으로 날짜가 R

1397758632 

을 그리고 난이 형식 % Y- % M- %에서 날짜로 변환 할 필요가 디. 어떻게해야합니까? 내 시간대는 GTM입니다. 이러한 방식 as.POSIXct() 함수를 사용 :

as.POSIXct(x="1397758632",origin="1960-01-01", tz="GMT") 

제가

이 오류 난 판독 데이터를 얻을 수있는 방법

Error in as.POSIXlt.character(x, tz, ...) : character string is not in a standard unambiguous format 

있나?

답변

1

두 가지 사항이 있습니다. 변수를 정의한 경우 x = "1397758632"을 다시 선언 할 필요가 없으므로 x을 사용하십시오. 예를 들어이 x="1397758632" 실제로 문자 변수 as.POSIXct(x,origin="1970-01-01", tz="GMT")

2입니다 // 당신은 숫자로 x=1397758632를 선언 할 것 str(x)을 시도하고 모든 잘해야합니다.

마지막으로 전체 시간 스탬프가 아닌 날짜 만 원하면 as.Date()을 추가하십시오.

그래서 뭔가 같은 :
x=1397758632 as.POSIXct(x,origin="1970-01-01", tz="GMT") as.Date(as.POSIXct(x,origin="1970-01-01", tz="GMT")) # for just the date

+0

덕분에 많이 나는 문자열이 아닌 숫자를 통과 한 것으로 나타났습니다하지 않았다. 또 다른 질문이 있습니다. 원래 시간을 바꾸면 어떨까요? 나는 항상 같은 결과를 얻는다. – ntrax

+0

tz'as.POSIXct (x, origin = "1970-01-01")'을 제거하면'Sys.time()'을 사용하여 시간대를 설정합니다. 사실, 나는 tz 코드가 무엇인지 기억하는 것보다는 초 단위로 오프셋을 추가하는 데 익숙하기 때문에 나는 모른다. 예 : // 귀하의 날짜 +/- 오프셋. 기원을 1970로 설정하면 1960을 사용하여 결과가 10 년 뒤가지며 (올해의 데이터를보고 있다고 가정) 오프셋을 사용하여 이것을 시도하면 정기적으로 어떤 시간대를 사용하는지 알게되면 기억하기 쉽습니다. http://www.epochconverter.com/epoch/timezones.php?epoch=1398163877 – digdeep

관련 문제