2016-07-22 21 views
0

私はRには新しく、いくつかの新しい変数を作成しようとしています。基本的に私のデータセットには母親IDの変数がある個人があります(つまり、2人の母親が同じ母親を持つ場合、この変数の値は同じになります)。ダミー変数をRで作成する

まず始めに、2人の兄弟が兄弟であれば= 1のダミー変数を作成します。私は使用しようとしました:

dummy <- as.numeric(duplicated(Identifiers_age$MPUBID) = TRUE) 

しかし、私は兄弟の1つのみ= 1を取得します。私は何をしなければならないのですか?

おかげ

+5

あなたは合計で見ていますか?あなたはグループ化したいですか?ダミーのデータセットや期待される出力がなくても、あなたが何をしているのかを知るのは難しいです(少なくとも1つの兄弟/姉妹の数またはちょうどあれば) – Tensibai

+0

あなたの質問を明確にするために** NOT ** post code inコメント – Tensibai

+0

申し訳ありませんが、私は明確になっているはずです。個人が少なくとも1つの兄弟を持っている場合、バイナリ変数= 1を探しています。 – Milhouse

答えて

3

あなたの目標は、観察ユニットは兄弟を持っている場合、それは1で0と1のベクトルを返すことである場合は、TRUE fromLast =と二duplicated文を含めたいです。

最初の重複した関数は、最初の兄弟の後にMPUBIDにある兄弟の数だけ1を返し、2番目の兄弟は最初の兄弟を拾います。

hasSiblings <- as.integer(duplicated(Identifiers_age$MPUBID) | 
          duplicated(Identifiers_age$MPUBID, fromLast=TRUE)) 

|は、ベクトル論理演算子ORです。 duplicatedは論理ベクトルを返すので、質問のときと同じように= TRUEを含める必要はありません。

0

dplyr答え:

library(dplyr) 

Identifiers_age %>% 
    group_by(MPUBID) %>% 
    mutate(hasSiblings = as.integer(n() > 1)) 
関連する問題