如何使用 sql 查询将整数数据类型列 NULL 值作为空值读取到 df 中?

How to read integer daata type column NULL value as nothing into a df using sqlquery?

我正在使用 SQLqruey 函数读取 table 并将其保存到 df。代码如下

table_data_query<-"select * from sample_data"

tables_data<- sqlQuery(cn, table_data_query,errors=TRUE,rows_at_time = 100,stringsAsFactors = FALSE, as.is = TRUE, na.string = "NULL", nullstring = "")

读取 df 时,varchar 和 char 数据类型列 NULL 值读取为空(无),但使用一列(int 数据类型)读取 NULL 值 "NA"(text/string)进入数据框

如何将 int 数据类型列的 NULL 值视为空值。

我无法重现您的问题。当我执行以下操作时:

table_data_query <-  "SELECT * FROM (VALUES(NULL,'a','b'),(1,NULL,'c')) V(a,b,c)"
dat <- sqlQuery(con, table_data_query, na.strings = c("NULL"),
                errors=TRUE,rows_at_time = 100,
                stringsAsFactors = FALSE, as.is = TRUE,
                nullstring = "")

str(dat)

结果是

'data.frame':   2 obs. of  3 variables:
$ a: int  NA 1
$ b: chr  "a" ""
$ c: chr  "b" "c"

这说明整数是作为整数读入R的。您在此处阅读的 NA 是 R 显示缺失值的方式。

例如:

> sum(dat$a)
[1] NA

> sum(dat$a, na.rm = T)
[1] 1

编辑:将 NA 保存为 CSV 的空白看这里: Write a dataframe to csv file with value of NA as blank