3

ロジスティック回帰のコーディングファクターについてサポートが必要です。

私が持っているのは、所得階層を表す6つのダミー変数です。ロジスティック回帰で使用するために、これらを単一の順序付き因子に変換したいと思います。

私のデータフレームは次のようになります。

    INC1 INC2 INC3 INC4 INC5 INC6
1      0    0    1    0    0    0  
2     NA   NA   NA   NA   NA   NA  
3      0    0    0    0    0    1  
4      0    0    0    0    0    1  
5      0    0    1    0    0    0  
6      0    0    0    1    0    0  
7      0    0    1    0    0    0  
8      0    0    0    1    0    0

私がそれをどのように見せたいか:

    INC
1   INC3  
2   NA   
3   INC6  
4   INC6  
5   INC3 
6   INC4  
7   INC3  
8   INC4   

これは一般的な(そして単純な)操作である必要がありますが、私の検索では、この再コーディングを実行する方法についての簡潔な答えは見つかりませんでした。どんな助けでも大歓迎です。

4

1 に答える 1

4

これは、NA値を保持し、順序付けられた係数に変換する別の回答に基づくソリューションです。

> inc
  INC1 INC2 INC3 INC4 INC5 INC6
1    0    0    1    0    0    0
2   NA   NA   NA   NA   NA   NA
3    0    0    0    0    0    1
4    0    0    0    0    0    1
5    0    0    1    0    0    0
6    0    0    0    1    0    0
7    0    0    1    0    0    0
8    0    0    0    1    0    0
> inc$F = factor(apply(inc, 1, function(x) names(x)[x == 1]),levels=names(inc),ordered=TRUE)

> inc
  INC1 INC2 INC3 INC4 INC5 INC6    F
1    0    0    1    0    0    0 INC3
2   NA   NA   NA   NA   NA   NA <NA>
3    0    0    0    0    0    1 INC6
4    0    0    0    0    0    1 INC6
5    0    0    1    0    0    0 INC3
6    0    0    0    1    0    0 INC4
7    0    0    1    0    0    0 INC3
8    0    0    0    1    0    0 INC4
> inc$F
[1] INC3 <NA> INC6 INC6 INC3 INC4 INC3 INC4
Levels: INC1 < INC2 < INC3 < INC4 < INC5 < INC6

連続して複数の1がある場合、これは壊れます。

于 2013-01-04T17:06:51.197 に答える