如何使用 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
我正在使用 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