1. sqlQuery 数据查询时,默认会把某些字符串字段当作数值读进来,数据库中原始数据如下,其中companyCode字段为字符串类型:

把表读进来后,字符串变成了数值,如下:
> read.data <- sqlQuery(conn_source, 'SELECT * FROM test')
> class(read.data$companycode)
[1] "integer"
> head(read.data)
id time companycode
1 1 2018-03-30 1
2 2 2018-03-31 1
3 3 2018-04-02 1
4 4 2018-04-04 1
5 5 2018-04-01 1
6 6 2018-04-03 1
解决方案:增加sqlQuery属性,
> read.data <- sqlQuery(conn_source, 'SELECT * FROM test', as.is = TRUE)
> class(read.data$companycode)
[1] "character"
> head(read.data)
id time companycode
1 1 2018-03-30 001
2 2 2018-03-31 001
3 3 2018-04-02 001
4 4 2018-04-04 001
5 5 2018-04-01 001
6 6 2018-04-03 001

本文介绍了一个常见问题:在使用sqlQuery进行数据查询时,字符串类型的字段可能被错误地识别为整数。通过设置as.is参数为TRUE,可以确保字符串字段正确读取,避免数据类型转换错误。
407

被折叠的 条评论
为什么被折叠?



