ROBDC を使用して Excel シートを R に読み込んでいます。しかし、私はいくつかの奇妙な結果に遭遇しました。場合によっては、R コンソールを再起動すると改善することがありますが、現在 3 回試行しましたが、次のバグ (?) が残っています。
Excel シートには、配列に読み込みたい数値のブロックが含まれています。
これは私のsqlQueryです:
channel <- odbcConnectExcel(paste("~link to file~"))
as.matrix(sqlQuery(channel,paste("select F13,F14,F15 from \"",land,i,"$\"",sep="")))
結果(の一部)は次のとおりです。
32 NA NA NA
33 NA NA "Pf7"
34 "2.079975e+02" "6.762166e+01" NA
35 "1.721265e+02" "5.595971e+01" NA
36 "1.373673e+02" "4.465921e+01" NA
37 "1.200835e+02" "3.904013e+01" NA
38 "1.411489e+02" "4.588864e+01" NA
39 NA NA NA
40 NA NA NA
41 NA NA NA
42 NA NA "Pf7"
43 "1.443768e+00" "4.693807e-01" NA
44 "1.194778e+00" "3.884318e-01" NA
45 "9.535044e-01" "3.099920e-01" NA
46 "8.335332e-01" "2.709883e-01" NA
47 "9.797535e-01" "3.185257e-01" NA
48 NA NA NA
49 NA NA NA
Excel シートでは、数字のすべてのブロックの前に Pf5:Pf7 があり、すべての説明 Pf5:Pf7 の後に 5 つの数字が続きます。すべてのセルは数値としてフォーマットされます。Excelシートはこちらからダウンロードできます。
F13 列と F14 列では、RODBC は説明を省略し (これは奇妙ですが、私には問題ありません)、F15 列では数値を省略します (これはまったく問題ありません!)。
奇妙なことに、昨日はまったく同じコードが正常に機能し、R ファイルを更新したり、Excel シートを変更したりしていないため、エラーの原因について困惑しています。
役に立つかもしれないコメントに感謝します。
ありがとう、マーティン
更新: odbcConnectExcel の代わりに odbcConnectExcel2007 を使用してみました。結果は次のとおりです。
22 NA NA NA
23 NA NA NA
24 NA NA "Pf7"
25 "7.730711e+01" "1.958429e+01" "12,638675305"
26 "4.126044e+01" "1.045255e+01" "6,7455279987"
27 "4.293419e+01" "1.087656e+01" "7,0191635751"
28 "4.278764e+01" "1.083944e+01" "6,9952057822"
29 "4.073317e+01" "1.031897e+01" "6,6593269202"
30 NA NA NA
31 NA NA NA
32 NA NA NA
33 NA NA "Pf7"
34 "9.001111e+01" "2.280260e+01" "14,715610176"
35 "4.804083e+01" "1.217023e+01" "7,854032014"
36 "4.998963e+01" "1.266392e+01" "8,1726345871"
37 "4.981901e+01" "1.262070e+01" "8,1447397695"
38 "4.742692e+01" "1.201471e+01" "7,7536653665"
39 NA NA NA
40 NA NA NA
「。」の代わりに「、」ドイツ語版の Excel を使用していることが原因である可能性があります。sub() を使用してコンマを置き換えることもできますが、これは (1) 洗練された解決策ではなく、(2) 最初の 2 つの列では機能するが 3 番目の列では機能しない理由を説明していません。(また、昨日は機能したが、今日は機能しなかった理由でもありません...)