私たちはすべての実験データを Sybase データベースに保管しています。データの操作と分析を行いたいときは、RODBC を使用してデータを R に読み込みます。
library(RODBC)
channellab <- odbcConnect("Labdata")
indivs <-sqlQuery(channellab,'SELECT * from CGS.Specimen')
これまでのところ、CGS.Specimen がラボの保有物全体のテーブルであることを除いて、非常に良好です。66 個の変数を持つほぼ 40000 の標本 (行) があります。特に、約 1000 の標本を含む 1 つの研究の所蔵にのみ関心がある場合は、読むのに不必要な時間がかかります。それを修正する明白な方法は
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, のエラー: 負の長さのベクトルは許可されていません
何を指示してるんですか?