当我使用RODBC导入国家/地区数据时,我经常使用ISO2代码。不幸的是纳米比亚的ISO2“NA”总是被遗忘。当然,有很多种方法,但我想知道是否有人找到了正确导入的方法。我试过了
df <- sqlFetch(ch,"data_from_database", na.strings="")
df <- sqlFetch(ch,"data_from_database", as.is)
无济于事。有小费吗?
答案 0 :(得分:1)
大多数数据库加载器最终都会调用read.table()
。所以作为第一步,让我们解决这个问题。
将数据文件tom.csv
设为
country,value
GB,55
NA,77
CH,23
我得到了
R> read.csv("/tmp/tom.csv")
country value
1 GB 55
2 <NA> 77
3 CH 23
R> read.csv("/tmp/tom.csv", na.string="#")
country value
1 GB 55
2 NA 77
3 CH 23
R>
如此简单地将na.string
设置为不同的值就足够了。
与sqlQuery()
一起使用,这比sqlFetch()
更直接有用。
答案 1 :(得分:1)
HA!好吧as.is = T不起作用,na.string =“”不起作用,但是他们的权力合并......
> ch <- odbcConnectExcel("m.xls")
> s <- sqlFetch(ch, "m", as.is=T)
> close(ch)
> s
iso2 value
1 GB 87
2 <NA> 456
3 IN 423
> ch <- odbcConnectExcel("m.xls")
> r <- sqlFetch(ch, "m", na.string="")
> close(ch)
> r
iso2 value
1 GB 87
2 <NA> 456
3 IN 423
> ch <- odbcConnectExcel("m.xls")
> n <- sqlFetch(ch, "m", as.is=T, na.string="")
> close(ch)
> n
iso2 value
1 GB 87
2 NA 456
3 IN 423