Я пытался найти способ справиться с способностью Postgresql представлять Infinity
и -Infinity
в их отметках времени при использовании RPostgreSQL
для переноса данных в R. По пути я обнаружил странное поведение при попытке представить бесконечные даты в R .Почему даты в бесконечности выглядят как NA, но действуют как даты?
Я могу попытаться создать дату в отрицательной и положительной бесконечности следующим образом:
❥ as.Date(-1/0, origin="1970-01-01")
[1] NA
❥ as.Date(1/0, origin="1970-01-01")
[1] NA
Они оба кажутся NAs. Однако, сравнивая их, кажется, есть понимание того, что один меньше другого.
❥ 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
Как R знать разницу, если они оба конвертируются в NA?
Я не эксперт по R, но я предполагаю, что они внутренне представлены как особые случаи, и вы можете легко сравнивать их, всегда говоря, что все после -Infinity (дата), и все до Infinity (date). Большинство языков программирования в любом случае обрабатывают такие значения, как особые случаи (как объекты). –