3

Rパッケージを使用するために Excel シートを読み込んでいますRODBCが、Excel ODBC ドライバーで問題が発生しました。(十分な) 先頭の NA を含む列は論理的に強制されます。

Excel では、データは次のように表示されます。

period      n       n.ft n.pt
1/02/1985   0.008   NA  0.025
1/03/1985   -0.003  NA  -0.024
1/04/1985   0.002   NA  0.015
1/05/1985   0.006   NA  0.012
1/06/1985   0.001   NA  0.003
1/07/1985   0.005   NA  0.010
1/08/1985   0.006   NA  0.001
1/09/1985   0.007   NA  0.013
1/10/1985   -0.002  NA  0.009
1/11/1985   0.013   NA  0.019
1/12/1985   -0.004  NA  -0.021
1/01/1986   0.008   NA  0.009
1/02/1986   0.002   NA  0.009
1/03/1986   0.002   -0.003  1.000
1/04/1986   0.010   -0.003  0.041
1/05/1986   0.000   -0.001  -0.004
1/06/1986   0.005   0.003   0.005
1/07/1986   -0.003  0.005   0.012
1/08/1986   -0.001  -0.003  -0.021
1/09/1986   0.003   -0.001  0.012
1/10/1986   0.003   0.003   0.010
1/11/1986   -0.003  0.003   -0.003
1/12/1986   0.003   -0.003  0.022
1/01/1987   0.001   0.013   -0.004
1/02/1987   0.004   -0.004  0.011
1/03/1987   0.004   0.008   0.005
1/04/1987   0.000   0.002   -0.002
1/05/1987   0.001   0.002   0.006
1/06/1987   0.004   0.010   0.00

私はデータを読み込んだ:

require(RODBC)
conexcel <- odbcConnectExcel(xls.file="C:/data/example.xls")
s1 <- 'SOx'
dd <- sqlFetch(conexcel, s1)
odbcClose(conexcel)

これは、 2 番目の列全体を として読み取りますNAこれは、論理的であると推測されているため、後続の数値が無効であると評価されているためだと思いますNA

> str(dd)
'data.frame':   29 obs. of  4 variables:
 $ period: POSIXct, format: "1985-02-01" "1985-03-01" ...
 $ n     : num  0.00833 -0.00338 0.00157 0.00562 0.00117 ...
 $ n#ft  : logi  NA NA NA NA NA NA ...
 $ n#pt  : num  0.02515 -0.02394 0.0154 0.01224 0.00301 ...

この強制が論理にならないようにする方法を見つけようとしていますが、これがその後のエラーの原因になっていると思います。

SO を検索してこのQ+Aを見つけましたが、私は仕事をしていて、提案されているようにレジストリを編集して DWORD のデフォルトを変更することを許可される見込みはありません(ここで設定した値によって、事前に必要な NA の数が決まることを理解しています)。 Microsoft はデータ型を推測し、私の読み取りを爆撃します)。

今のところ、Excel でデータを反転させて、逆さまに R に読み込むのが最善の解決策ではないかと考えています。

私は良いハックが大好きですが、きっともっと良い解決策がありますか?

4

1 に答える 1

4

これはバグではなく、ここに記載されている ODBC の機能です (R がないことに注意してください)。

http://support.microsoft.com/kb/257819/en-us

(長いページ、「混合データ型」を確認してください)。

ODBC を使用した Excel ファイルの読み取りはかなり制限されているため、Gabor が言及した代替手段の 1 つを好み、XLConnnect を優先します。

于 2012-08-28T06:11:56.120 に答える