2016-07-11 7 views
0

5つのテーブルと10年近くのデータからなるSQLデータベースの欠落のマトリックスを作成しようとしています。私はODBC接続を確立しており、私の作業環境としてRのRODBCパッケージを使用しています。私は、各テーブルの各年の行のカウントを出力する関数を記述しようとしています。与えられたテーブルの指定された年のNULL値(存在しない値)の数とパーセント、質問がスキップされた/応答されなかった)値を返します。私は、以下のコードを使って作業しています。ひとつの変数で動作させてから、関数に変換します。しかし、私はこのコードを実行すると(下を参照)、それは動作していないように見え、nullの文字に整数値、NAを割り当てることに問題があると考えています。RODBCパッケージを使用したNULL値と欠損値の差異(およびその2つの差異)

as.environment(pos)のエラー:「22018 245 [Microsoft] [ODBC SQL Server Driver] [SQL Server]変換に失敗しました」というメッセージが表示されます。 varchar値 'NA'をデータ型intに変換するときに発生します。検索リストに表示されます。

また、関数の環境を見つけようとすると、RはNULLを返します。私は必ずしも既存の変数に新しい値を代入したいとは思っていませんが、SQLを初めて使用していますが、これらの行に沿って何かをしようとしていますIf X = 'NA'Y = 1 else 0

エラーが発生しました(代替(expr)、データ、enclos = parent.frame()):無効な 'envir'が見つかりませんでした。型 '文字'の引数

任意の洞察?

test1の< - その場合のSQLQuery(チャネル、「私はあなたのコラムMOTHER_EDUCATION_TRENDABLEのデータ型が整数であると考えてい

   [EVENT_YEAR] AS 'YEAR', 
       COUNT(*) AS 'TOTAL', 
       SUM(CASE WHEN MOTHER_EDUCATION_TRENDABLE = 'NA' THEN 1 ELSE 0 END) AS 'NULL_VAL', 
       SUM(CASE WHEN MOTHER_EDUCATION_TRENDABLE = -1 THEN 1 ELSE 0 END) AS 'MISS_VAL' 

       from [GA_CMH].[dbo].[BIRTHS] 

       GROUP BY [EVENT_YEAR] 
       ORDER BY [EVENT_YEAR]") 

       test1$nullpct<-with(test1, NULL_VAL/TOTAL) 
       test1$misspct<-with(test1, MISS_VAL/TOTAL) 

答えて

0

を選択し、試してみてください。

 

    select 
    [EVENT_YEAR] AS 'YEAR', 
    COUNT(*) AS 'TOTAL', 
    SUM(CASE WHEN MOTHER_EDUCATION_TRENDABLE IS NULL THEN 1 ELSE 0 END) AS 'NULL_VAL', 
    SUM(CASE WHEN MOTHER_EDUCATION_TRENDABLE = -1 THEN 1 ELSE 0 END) AS 'MISS_VAL' 
    from [GA_CMH].[dbo].[BIRTHS] 
    GROUP BY [EVENT_YEAR] 
    ORDER BY [EVENT_YEAR] 

+0

感謝あなた!それはそれを修正しました! –

関連する問題