時系列データの作成 †時系列データには「観測時点」に関するデータがつきものです。例えば年次データだと「1998年」「1999年」といった年がそれです。もとの経済データには当然、何年のデータであるかが記されています。 基本的にRの時系列処理では、観測時点のデータがExcelデータに書き込んであっても、それは使いません。スクリプトの中に、それが何年から何年までのデータであるかを書きます。 ここではRサンプル2のデータに掲げたsample3.csvを読ませて、時系列データだと解釈させる方法を書きます。x1、x2、yの3つの変数についての観測値6組が入っているのがわかりますね。 次のスクリプトを見てください。 dset <- read.csv("d/sample3.csv", header=TRUE) dset2 = ts(dset, frequency = 4, start = c(1980,2)) dset2 dset3 = ts(dset, frequency = 1, start = 1980) dset3 dsetは3つの変数x1、x2、yの観測値6組全体に1行目でつけた名前です。 dset2 = ts(dset, frequency = 4, start = c(1980,2)) は、頻度4の時系列、つまり四半期データであることを示します。start = c(1980,2)は、1980年の第2四半期(4-6月)からデータが始まることを指示しています。時系列情報を与えたのでdset2という別の名前をつけていますが、同じ名前でもかまいません。 dset3 = ts(dset, frequency = 1, start = 1980) は、年次データを扱う例です。startのあとのcや括弧は不要です。もし月次データなら、frequency=12にして、dset2と同様に始まりの月を指定してやればいいのです。 実行させると、こんな結果が出るはずです。「dset2」「dset3」とだけ書いてある行は、中身を表示しろ、という指示です。 > dset <- read.csv("d/sample3.csv", header=TRUE) > dset2 = ts(dset, frequency = 4, start = c(1980,2)) > dset2 x1 x2 y 1980 Q2 1.5 1.00 -3.2 1980 Q3 2.3 3.90 2.0 1980 Q4 3.8 8.60 2.2 1981 Q1 4.2 15.25 6.3 1981 Q2 5.6 28.60 5.8 1981 Q3 6.3 32.68 12.5 > dset3 = ts(dset, frequency = 1, start = 1980) > dset3 Time Series: Start = 1980 End = 1985 Frequency = 1 x1 x2 y 1980 1.5 1.00 -3.2 1981 2.3 3.90 2.0 1982 3.8 8.60 2.2 1983 4.2 15.25 6.3 1984 5.6 28.60 5.8 1985 6.3 32.68 12.5 > より詳しい解説については、zooパッケージの解説文書(英語)およびクイックリファレンスを参照してください。 でもExcelデータに年号はやっぱり書いておこう †読み込んでもどうせ使わないのですが、やはり年次や月の入った列はExcelデータに残しておいて、ムダでもRに読み込ませることをお勧めします。もう使わないと思ったデータセットでも、あとで間違いが見つかったり、似たような分析に再利用したくなったりして、いつからいつまでのデータだかわからないと困ることになるからです。データとスクリプトが同じところにあればいいんですが、時間が経つと片方しか見つからないこともよくあるので。 attachとdetachの復習 †この例は「読み込んで表示しておしまい」ですが、これから分析をするときは「どのデータセットについて作業をしているか」わからないと困ります。データセットを選ぶのがattach、他をattachする前に、いま選んでいるデータセットを切り離すのがdetachです。スクリプトを何本も連続して動かすと、detachが済んでいないのにattachするとエラーが出ることがあります。 |