web-dev-qa-db-ja.com

Rへのdatファイルのインポート

この質問が簡単であることを事前におApび申し上げます。次のコードを使用して、WebサイトからRに.datファイルをインポートしようとしています。

www = "http://www.nilu.no/projects/ccc/onlinedata/ozone/CZ03_2009.dat"
data <- read.delim(www, header = TRUE, sep="\t") 

Data.frameのValue部分にアクセスしたいのですが、data.frameの次元についてはわかりません。ncol(data)と入力すると、3を期待していた1を返します。このdata.frameの「3番目」の列にアクセスするにはどうすればよいですか?

47
KatyB

Datファイルには、実際のデータの前に追加情報の行がいくつかあります。 skip引数でそれらをスキップします:

read.table("http://www.nilu.no/projects/ccc/onlinedata/ozone/CZ03_2009.dat", 
           header=TRUE, skip=3)

データセットに慣れていない場合、これを確認する簡単な方法は、以下のように最初にreadLinesを使用して数行をチェックすることです。

readLines("http://www.nilu.no/projects/ccc/onlinedata/ozone/CZ03_2009.dat", 
          n=10)
# [1] "Ozone data from CZ03 2009"   "Local time: GMT + 0"        
# [3] ""                            "Date        Hour      Value"
# [5] "01.01.2009 00:00       34.3" "01.01.2009 01:00       31.9"
# [7] "01.01.2009 02:00       29.9" "01.01.2009 03:00       28.5"
# [9] "01.01.2009 04:00       32.9" "01.01.2009 05:00       20.5"

ここでは、実際のデータは[4]で始まることがわかるため、最初の3行をスキップすることがわかります。

更新

本当にValueカラムのみが必要な場合、couldでそれを行います:

as.vector(
    read.table("http://www.nilu.no/projects/ccc/onlinedata/ozone/CZ03_2009.dat",
               header=TRUE, skip=3)$Value)

繰り返しますが、readLinesは、インポートする列の実際の名前を把握するのに役立ちます。

しかし、データセット全体を読み込んで後で抽出するよりもmuchを行う利点はありません。

53