我正在使用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值为空。
答案 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