将postgres数字NaN值收集为R中的NaN / NA?

时间:2017-08-02 06:51:26

标签: r postgresql dplyr rpostgresql

我遇到一个问题,从类型为numeric的PostgreSQL列获取带有dplyr(0.5.0)的NaN数值数据(因此支持NaN)。基础故障位于RPostgreSQL,其中NaN值为零。 E.g:

# create table
create table tmp_dplyr_NaN_test_20170802 (
val numeric
);

insert into tmp_dplyr_NaN_test_20170802 (val) values (100);
insert into tmp_dplyr_NaN_test_20170802 (val) values ('NaN');

然后,正在运行select * from tmp_dplyr_NaN_test_20170802;会按预期返回值100, NaN

R

RPostgreSQL::dbGetQuery(con, "select val from tmp_dplyr_NaN_test_20170802")
# val
# 1 100
# 2   0

可以通过以下方式“修复”:

RPostgreSQL::dbGetQuery(con, "select nullif(val, 'NaN') from tmp_dplyr_NaN_test_20170802")

#     nullif
# 1    100
# 2     NA

我想知道这里发生了什么。如何在不使用数据库内的NaN的情况下将NaN值实际收集为NAnullif

0 个答案:

没有答案