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 に読み込むのが最善の解決策ではないかと考えています。
私は良いハックが大好きですが、きっともっと良い解決策がありますか?