1. ホーム
  2. r

[解決済み] R に dat ファイルをインポートする

2022-03-12 09:44:19

質問

簡単な質問で申し訳ないのですが、よろしくお願いします。私は、以下のコードでウェブサイトから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番目の列にはどのようにアクセスすればよいのでしょうか?

解決方法は?

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 の列がある場合、あなたは できる で行う。

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

もう一度 readLines は、インポートするカラムの実際の名前を把握するのに便利です。

しかし あまり データセット全体を読み込んで後で抽出するよりも、この方法の方がメリットがあります。