1

カテゴリ変数を含むデータセットがあり、それをダミー変数に変換したいとします。

df<-data.frame(read.table(header = TRUE, text = 
"ID Mobile
1 Yes
2 No
3 Yes
4 Yes
5 No"))

私は通常、次のようにこれを行います。

for(level in levels(df$Mobile)){
df[paste("Mobile", level, sep = "_")] <- ifelse(df$Mobile == level, 1,   0)
}

これはうまくいきます。ただし、そのようなカテゴリ変数が多数あると想像してください。これら 3 行のコードを何度もコピーして貼り付ける代わりに、無名関数を使用する必要があります。私は次のようにそれを試しました:

Mediatable<-function(VARIABLE1, DUMMY1, INDICATOR1){
   for(level in levels(VARIABLE1)){
      df[paste(DUMMY1, level, sep = "_")] <- ifelse(VARIABLE1 == level, 1, 0)
   }
}

次に、次のようにトリガーします。

Mediatable(df$Mobile, "Mobile") 

試してみましたが、何も起こりませんでした。何がうまくいかなかったのですか?私は、無名関数を使用して、多数のカテゴリ変数にわたってこの作業を行うというアイデアが本当に気に入っています。ところで、貼り付けを使用してダミー変数に特定の名前を割り当てたいことは無視してください。ここでは問題ありません。ありがとう!

4

1 に答える 1