11

genderバイナリカテゴリ値「女性」/「男性」を持つ という変数があります。回帰分析で使用できるように、型を整数 0/1 に変更したいと考えています。つまり、「女性」と「男性」の値を 1 と 0 にマッピングしたいのです。

> str(gender)
gender : Factor w/ 2 levels "female","male":  1 1 1 0 0 0 0 1 1 0 ...
> gender[1]
[1] female

要素を照会したときに int 値 1 を取得するように、性別変数の型を変換したいと思います。つまり、

> gender[1]
[1] 1
4

3 に答える 3

15

@Dasonの回答への追加として、注意してください...

test <- c("male","female")

as.factor(test)
#[1] male   female
#Levels: female male

...female参照グループ (1) およびmale比較グループ (2) として返されます。

逆に回すには...

factor(test,levels=c("male","female"))
#[1] male   female
#Levels: male female

@mariusが指摘しているように、を使用contrastsすると、回帰モデルでどのように機能するかがわかります。

contrasts(as.factor(test))
#       male
#female    0
#male      1

contrasts(factor(test,levels=c("male","female")))
#       female
#male        0
#female      1
于 2013-02-21T05:10:39.317 に答える
14

因数に変換し、あとは R に任せます。R を使用する場合、ダミー変数を明示的に作成する必要はありません。

于 2013-02-21T05:04:02.427 に答える
7

これを実際に行っている場合は、@ Dason のアドバイスに絶対に従う必要があります。あなたがクラスを教えていて、インジケーター変数を示したいと仮定します (この質問のおかげで):

dat <- data.frame(gender=sample(c("male", "female"), 10, replace=TRUE))

model.matrix(~gender, data=dat)

   (Intercept) gendermale
1            1          1
2            1          0
3            1          1
4            1          0
5            1          1
6            1          1
7            1          1
8            1          0
9            1          0
10           1          1
attr(,"assign")
[1] 0 1
attr(,"contrasts")
attr(,"contrasts")$gender
[1] "contr.treatment"

インターセプトが必要ない場合は、model.matrix(~gender -1 , data=dat)代わりに使用してください。

于 2013-02-21T05:18:32.633 に答える