2017-09-15 16 views
1

私はRパッケージmonitoRを使用しており、わからないエラーメッセージが表示されています。RパッケージmonitoRエラーdbUploadTemplate [pkg-monitor]

dbUploadTemplateコマンドを使用して、相関テンプレートリスト(「bithTemps」)をMySQLデータベース(「noh」)にアップロードしようとしています。

dbUploadTemplate(templates = bithTemps, 
      uid = "root", 
      pwd = "****", 
      db.name = "noh", 
      analyst = 1, 
      locationID = "2", 
      date.recorded = "2017/09/07", 
      recording.equip = "Unknown", 
      species.code = "BITH", 
      type = "COR") 

これが返されます。

Error: $ operator is invalid for atomic vectors

私は(パッケージ内の他の引数に呼び出されたとき、すなわち、それは動作します)テンプレートリストが機能していること、ODBC接続が動作している確認、およびことをしていますSQLデータベースには、アナリスト、場所、および種別コードに必要なエントリがあります。

答えて

0

このエラーは実際には機能していないODBC接続によって引き起こされたようです。この部分は、dbUploadTemplate関数

species <- RODBC::sqlQuery(dbCon, paste("SELECT `pkSpeciesID`, `fldSpeciesCode` FROM `tblSpecies` WHERE `fldSpeciesCode` = '", 
     paste(species.code, sep = "", collapse = "' OR `fldSpeciesCode` = '"), 
     "'", sep = "")) 

は、SQLデータベース内のテーブルを照会し、 '種'と呼ばれるオブジェクトを返します。クエリが失敗した場合(例えば、RODBCは接続できないので)「種」よりは空で、次の操作

 speciesID <- NULL  
for (i in 1:length(species.code)) { 
    speciesID[i] <- species$pkSpeciesID[species$fldSpeciesCode == 
     species.code[i]] 
} 

はエラーをトリガします。 ODBC接続を修正すると、エラーが解決されます。