dummies パッケージの R dummy.data.frame 関数を使用して、因子の k レベルのダミー変数を作成しています。残念ながら、私の要素には NA があります。dummy.data.frame を使用すると、NA のない k 個のダミーと、欠損値に 1 のフラグを立てる新しいダミーが作成されます。ただし、欠損値のダミーではなく、k 個のダミーに NA を保持したいと考えています。
その機能でこれは可能ですか?私を助けることができる他の機能を知っていますか?
dummies パッケージの R dummy.data.frame 関数を使用して、因子の k レベルのダミー変数を作成しています。残念ながら、私の要素には NA があります。dummy.data.frame を使用すると、NA のない k 個のダミーと、欠損値に 1 のフラグを立てる新しいダミーが作成されます。ただし、欠損値のダミーではなく、k 個のダミーに NA を保持したいと考えています。
その機能でこれは可能ですか?私を助けることができる他の機能を知っていますか?
私は通常、 を使用してこの種のことを行いmodel.matrix()
ます。オプション na.action を pass に設定してこれを使用すると、NA が正しい場所に保持されます。このオプションは関数の動作を変更するようには見えないdummy()
ため、を使用model.matrix()
するのが最も簡単な方法かもしれません。たとえば、要素文字が 1 つの場合は、次のようにするとうまくいきます。
options(na.action="na.pass")
letters <- c( "a", "a", "b", "c", "d", "e", "f", "g", "h", "b", "b", NA )
model.matrix(~letters-1)
または、データ フレームのいくつかの変数または列についても同様です。
letters <- c( "a", "a", "b", "c", "d", "e", "f", "g", "h", "b", "b", NA )
betters <- c( "a", "a", "c", "c", "c", "d", "d", "d", NA, "e", "e", "e" )
model.matrix(~letters+betters-1)
ここで重要なトリックは、オプション na.action を設定することです。このダミーの再コーディングの後、オプションをデフォルト値に戻すことをお勧めします。
options(na.action="na.omit")