2016-11-11 14 views
0

私は書式設定しようとしている主にカテゴリ変数(要素)を含むデータセットを持っています。 データセットは、現在、このようなフォーマットされている:同じレベルでさまざまな要因のダミー変数を作成する

Obs X1 X2 X3 X4 ... X50 
    1 A B C D 
    2 B A D E 
    3 B C D A 

ただし、X1およびX2のためのAは同じ、すなわちX1及びX2は、因子が最初に検出されたものと考えることができることを意味すべきです。私の考えは、ダミーを使ってデータセットを定式化することでした。ソリューションで

Obs A B C D ... 
    1 1 1 1 1 ... 
    2 1 1 0 1 ... 
    3 1 1 1 1 ... 

私の試みはされている:私はdata.frameのDFにすべてのカテゴリ変数を分離した後、要因のすべてのレベルごとにダミー変数を作成しようとしました。私はこのコードRを実行しようとすると

for (i in 1:ncol(df)){ 
     for(level in df[,i]){ 
      df2[paste("", level, sep="")] = ifelse(i == level, 1, 0) 
     } 
    } 

はしかし、フリーズするようだ - これが動作しない理由のためにあらゆる理由があるのでしょうか? 誰かが問題をより効率的に処理するための提案はありますか?あなたはすぐにダミー変数を作成したい場合は任意の提案

答えて

0

ため

おかげで、Matrixライブラリを使用して、スパース行列を作成します。彼らはすでに今、あなたは、yは従属変数を含む1列の行列であり、xはまばらであるあなたのスパース行列xを、使用してYをモデル化することができますdata$X1<-as.factor(data$X1)

library(Matrix) 
f <- as.formula(DependedntVar~ + X1 
        + X2 
        + X3..etc) 

    # transform dataframe to spareMatrix 
    x <- model.matrix(f, data) 
    y <- as.matrix(DependedntVar, ncol=1) 

を使用していない場合は、要因にあなたのカテゴリ変数を変換する必要がありますマトリックスは因子がダミー変数に変換されています。

X1とX2の自己相関に注意する必要があります。100%相関していると思われるように見えます。

関連する問題