2017-02-18 5 views
1
zurück

Warum gibt NA im ersten Fall immer ein, aber ein gültiges Ergebnis im zweiten Fall.Warum gibt NA in einigen Fällen immer

str(A$X1) 
int [1:23744] 1487319525 1487323025 1487325865 1487332405 1487334780 1487353675 1487354135 1487354185 1487354195 1487354215 ... 
> anytime(A$X1[1]) 
[1] NA 
> anytime(1487319525) 
[1] "2017-02-17 02:18:45 CST" 

Antwort

3

, die einen Unterschied zwischen integer und numeric ist. Beachten Sie, dass Ihr Vektor als integer aufgeführt ist.

So Zeuge:

R> library(anytime) R> R> ivec <- c(1487319525L, 1487323025L, 1487325865L) R> str(ivec) int [1:3] 1487319525 1487323025 1487325865 R> anytime(ivec) [1] NA NA NA R> R> fvec <- as.numeric(ivec) ## convert to numeric R> str(fvec) num [1:3] 1.49e+09 1.49e+09 1.49e+09 R> anytime(fvec) [1] "2017-02-17 02:18:45 CST" "2017-02-17 03:17:05 CST" "2017-02-17 04:04:25 CST" R>

Wir gehen hier eine feine Linie. Numerisch Werte werden in einem bestimmten Bereich POSIXct genommen. Da C++ stark typisiert ist, ist Ihr Integer-Vektor für diesen Test geeignet.

Darüber hinaus können wir nicht nur integer-numeric konvertieren, wie wir auf diese verlassen sich zu arbeiten:

R> anytime(20170217) 
[1] "2017-02-17 CST" 
R> 

Edit: nachgegeben ich. Die aktuelle Entwicklerversion in GitHub hat:

R> library(anytime) 
R> ivec <- c(1487319525L, 1487323025L, 1487325865L) 
R> anytime(ivec) 
[1] "2017-02-17 02:18:45 CST" "2017-02-17 03:17:05 CST" "2017-02-17 04:04:25 CST" 
R> 
+0

Könnten Sie einen Scheck für ganze Zahlen einrichten> 40000000L, die dann als presumtive mal behandelt werden würde? –

+0

Vielleicht. Vielleicht nicht. Es kann Nebenwirkungen haben. Aber wie Sie wissen, ist das Paket Open Source und hat eine Testsuite, so dass Sie es auch ausprobieren können. Ich denke, es ist ziemlich selten, Variablen vom Typ 'integer' mit POSIXct-Werten zu haben, da letzteres eine 'numerisch' ist. Und wie ich gezeigt habe, ist es relativ einfach, zurück in "numerisch" zu konvertieren. –

+0

Ich habe einen [neuen Zweig für diese] (https://github.com/eddelbuettel/anytime/tree/feature/large_ints) hinzugefügt und es könnte schließlich ein neues Feature werden. –

Verwandte Themen