私のデータセットは次のようになります
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 ......
(ATTXX は XX 年の学校への出席を示すダミー変数、GRADEXX は学年を示す)
個人が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 になります。何がうまくいかないのでしょうか?