我们将所有实验室数据保存在 Sybase 数据库中。当我想做数据操作和分析时,我使用 RODBC 将数据读入 R。
library(RODBC)
channellab <- odbcConnect("Labdata")
indivs <-sqlQuery(channellab,'SELECT * from CGS.Specimen')
到目前为止一切顺利,除了 CGS.Specimen 是我们整个实验室所有的表格。有近 40000 个样本(行),有 66 个变量。阅读需要花费不必要的时间,尤其是当我只对一项拥有大约 1000 个标本的研究感兴趣时。解决它的明显方法是
indivs <-sqlQuery(channellab,'SELECT * from CGS.Specimen WHERE StudyCode="RP"')
但是当我跑步时,我得到了
[1] "42S22 -143 [Sybase][ODBC Driver][Adaptive Server Anywhere]Column not found: Column 'RP' not found" "[RODBC] ERROR: Could not SQLExecDirect 'SELECT * from CGS.Specimen WHERE StudyCode=\ "RP\"'"
我玩过引号,也玩过转义斜线,但可惜我一无所获。
例如
indivs <-sqlQuery(channellab,'SELECT * from CGS.Specimen WHERE StudyCode= 'RP' ')
错误:“indivs <-sqlQuery(channellab,'SELECT * from CGS.Specimen WHERE StudyCode='RP”中出现意外符号
indivs <-sqlQuery(channellab,"SELECT * from CGS.Specimen WHERE StudyCode= 'RP' ")
.Call(C_RODBCFetchRows, attr(channel, "handle_ptr"), max, buffsize, 中的错误:不允许负长度向量
你有什么建议?