如何使用sqlquery读取整数daata类型列NULL值为df?

时间:2017-01-04 10:14:03

标签: r rodbc

我正在使用SQLqruey函数读取表并将其保存到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 = "")

varchar和char数据类型列读取到df时读取为空(无),但是有一列(int数据类型)NULL值正在读取&#34; NA&#34;(text / string)into数据框

如何读取int数据类型列NULL值为空。

1 个答案:

答案 0 :(得分:1)

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

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