ダミー変数の生成

Rで以下のようなダミー変数を生成するのに苦労しています。

私は年単位の時系列データ(期間1948-2009)を分析しています。2つの質問があります。

1.観測番号10、つまり1957年のダミー変数(値は1957年に1、それ以外は0)を生成するにはどうしたらよいでしょうか?

2.2. 1957年以前は0で、1957年以降2009年までは1となるダミー変数を作成するにはどうしたらよいでしょうか?

また、変数が多い場合に有効なオプションとして、factormodel.matrixがあります。

> year.f = factor(year)
> dummies = model.matrix(~year.f)

これはインターセプトの列(すべての1)と、データセットの各年の列(1つを除く)を含み、それが"default"またはインターセプト値となります。

model.matrixcontrasts.arg`を操作することで、どのように"default"を選択するかを変更することができます。

また、インターセプトを省略したい場合は、最初の列を削除するか、数式の最後に +0 を追加します。

お役に立てれば幸いです。

解説 (10)

これらのダミー変数を生成する最も簡単な方法は、以下のようなものです。

> print(year)
[1] 1956 1957 1957 1958 1958 1959
> dummy  print(dummy)
[1] 0 1 1 0 0 0
> dummy2 = 1957)
> print(dummy2)
[1] 0 1 1 1 1 1

より一般的には、ifelseを使って、条件に応じて2つの値を選択することができます。つまり、0~1のダミー変数の代わりに、何らかの理由で例えば4と7を使いたい場合は、ifelse(year == 1957, 4, 7)となります。

解説 (0)

このようなダミー変数を扱うために私が通常行うことは

(1) 観測番号10、つまり1957年に対するダミー変数をどのようにして生成するか(1957年に1、それ以外は0とする)


data$factor_year_1 
解説 (0)