2017-11-11 1 views
1

R에서 마이크로 초를 사용하여 현재 시간을 에포크 타임 스탬프로 변환하고 싶습니다. 다음 코드를 실행하고 있습니다.R : Sys.now()를 마이크로 초 단위의 에포크 타임 스탬프로 변환합니다.

options(digits.secs = 6) 
now = Sys.time()  
as.double(now) 

나는 단순히 마이크로를 캡처하지만 as.double(now)를 사용하여 획기적인 타임 스탬프로 변환하면, 마이크로 정밀도가 없어 어디에 출력이 "2017-11-11 20:40:18.370305 CET"입니다 now를 인쇄 할 수 있습니다. 결과는 1510429218입니다. 마이크로 초를 유지하는 방법?

답변

0

당신이 (항상)을 가지고 있지만, 더 많은 숫자를 사용하는 print 말할 필요 :

R> n <- Sys.time() 
R> print(as.numeric(n), digits=16) ## digits matters here 
[1] 1510432192.721936 
R> n 
[1] "2017-11-11 14:29:52.721935 CST" 
R> 
0

R은 매우 어려운 방법 진수를 처리하는 방법을 배운! 다음 코드를 참조하십시오.

options(digits.secs = 6)  
a = c(as.double(Sys.time()), as.double(Sys.time()), as.double(Sys.time())) 
print(a) 

이 코드의 출력은 다음과 같습니다.

[1] 1510430216 1510430216 1510430216 

타임 스탬프의 마이크로 초 정밀도가 손실 된 것 같습니다. 그러나 데이터를 파일에 쓰거나 내보낼 때 십진수가 표시됩니다. 파일의

df = data.frame(a) 
write.csv(x = df, file = "test.csv") 

내용은 다음과 같습니다

1 1510430215.888998 
2 1510430215.889942 
3 1510430215.889942 

또한 R 세션/콘솔의 진수를 보려면, 공개 설정을 변경해야합니다.

options(digits = 16) 
print(a) 

이제 모든 10 진수가 R 세션에서도 볼 수 있습니다.

[1] 1510430215.888998 1510430215.889942 1510430215.889942 

기본 표시 자리수는 7입니다. 따라서 숫자가 이보다 큰 경우 R은 십진수가 표시되지 않도록 간단히 선택합니다. 엄청난 혼란을 불러 일으키는 것은 어리 석다. 최소한 하나 또는 두 개의 10 진수를 유지해야합니다.

관련 문제