ダミー変数を構築する私のデータセットは、(。GRADEXXは、学校のグレードを表す、年XXの学校への出席を示すATTXXダミーVAR)は、多くの条件(R)
この
ID YOB ATT94 GRADE94 ATT96 GRADE96 ATT 96 .....
1 1975 1 12 0 NA
2 1985 1 3 1 5
3 1977 0 NA 0 NA
4 ......
ようになります19,20歳のときに個人が学校に通っているならば、= 1のダミー変数を作成しようとしています。例えばYOB = 1988とATT98 = 1の場合、新しい変数= 1などです。これはdplyrでmutateを使って試していますが、私はR(そして一般的にはコーディングしています)に新しいので、エラー以外は何も得られませんコードを書く。
ありがとうございます、ありがとうございます。
編集:だから
、私はちょうど私が少しだけ長い形式のデータテーブルに別の列を追加するようにコードを変更し、何かが間違っていることに気付きました。ここで最後にやったことがあります:
df %>%
melt(id = c("ID", "DOB") %>%
tbl_df() %>%
mutate(dummy = ifelse(value - DOB %in% c(19,20), 1, 0))
です。
ID YOB VARIABLE VALUE dummy
1 1979 ATT94 1994 1
1 1979 ATT96 1996 1
1 1979 ATT98 0 0
2 1976 ATT94 0 0
2 1976 ATT96 1996 1
2 1976 ATT98 1998 1
つまり、ATT変数が0以外の値を取るときは、19/20歳でなくても、ダミー= 1となります。何が間違っている可能性がある任意のアイデア?自分の携帯電話で
%in%コマンドで奇妙なことが起こっているようです。幸いにも、次のような他のロジックと置き換えるのは簡単です。 DF%>% メルト(ID = "DOB")%>% tbl_df()%>% 変異(ダミー= ifelse(値 - DOB <21&値 - DOB> 18、1、0)) –
それは完璧に動作し、もう一度感謝アンドリュー – Milhouse
喜んで、それがうまくいます。 –