Stavo cercando di capire il modo migliore per gestire la capacità di Postgresql di rappresentare Infinity
e -Infinity
nel loro timestamp quando si utilizza RPostgreSQL
per trasferire i dati in R. Lungo la strada ho trovato un comportamento strano quando si cercava di rappresentare infinite date in R .Perché le date a infinito sembrano NA ma si comportano come le date?
posso tentare di creare una data all'infinito negativo e positivo nel seguente modo:
❥ as.Date(-1/0, origin="1970-01-01")
[1] NA
❥ as.Date(1/0, origin="1970-01-01")
[1] NA
entrambi sembrano essere AN. Tuttavia, confrontandoli, sembra esserci la consapevolezza che uno è minore dell'altro.
❥ as.Date(-1/0, origin="1970-01-01") < as.Date(1/0, origin="1970-01-01")
[1] TRUE
❥ as.Date(-1/0, origin="1970-01-01") > as.Date(1/0, origin="1970-01-01")
[1] FALSE
❥ as.Date(1/0, origin="1970-01-01") > as.Date("1970-01-01")
[1] TRUE
❥ as.Date(1/0, origin="1970-01-01") < as.Date("1970-01-01")
[1] FALSE
Come fa R a sapere la differenza, se entrambi convertono in NA?
Io non sono un esperto di R ma la mia ipotesi è che questi siano internamente rappresentati come casi speciali e puoi facilmente confrontarli dicendo sempre che tutto è finito -Infinity (data) e tutto è prima di Infinity (data). La maggior parte dei linguaggi di programmazione tratta comunque tali valori come casi speciali (come oggetti comunque). –