gender
という変数があり、バイナリカテゴリ値は「female」/「male」です。回帰分析で使用できるように、型を整数0/1に変更したいと思います。つまり、値「female」と「male」を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
@Dasonの回答に加えて、次のことに注意してください...
test <- c("male","female")
as.factor(test)
#[1] male female
#Levels: female male
...参照グループ(1)としてfemale
を返し、比較グループ(2)としてmale
を返します。
逆に回転させるには、次のことを行う必要があります...
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
因数に変換し、残りはRに任せます。 Rを使用する場合、ダミー変数を明示的に作成する必要はありません。
これを実際に行っている場合は、@ 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)
を使用してください。