No.21738 【R】カテゴリカルデータのダミー変数化 【赤羽】 2015/07/20(Mon) 09:28
青木先生,
赤羽と申します,いつもご教示を頂戴し,誠にありがとうございます。
改めて御礼を申し上げます。
カテゴリカルデータのダミー変数化の関数を作成しています。
処理速度で問題があることから,ご教示を頂戴いただけましたら大変に助かります。
どうぞ,よろしくお願いいたします。
関数のシグネチャは,以下の通りです。
function(cname, cdata)
cname → 列の名前
cdata → 列データ
具体的な値は,タイタニックの例では以下の通りです。
cname
→ Class,Age,Sex,Alive
cdata
→ 1等,2等,3等,乗務員,,,,
→ 大人,子供,,,,,,,,,
→ 男性,女性,,,,,,,,,
→ 生還,死亡,,,,,,,,,
作成しました関数です。
cat2dummy <- function(cname, cdata){
dat <- factor(cdata)
ncol <- length(levels(dat))
res <- NULL
for (i in 1:length(dat)){
cc <- numeric(ncol)
cc[as.numeric(dat)[i]] <- 1
res <- rbind(res, cc) # 処理速度で問題あり!
}
以下,省略
・・・・・・・
return(res)
}
性能面で支配的になる箇所は,以下です。
res <- rbind(res, cc) # 処理速度で問題あり!
行方向に逐次,連結していく幼稚な方法であることから,処理速度で問題があります。
このコード最大限に活かして,apply関数を適用して処理速度の向上を高めたいと思っています。
ご教示を頂戴できれば,大変に助かります。
どうぞ,よろしくお願いいたします。
No.21739 Re: 【R】カテゴリカルデータのダミー変数化 【青木繁伸】 2015/07/20(Mon) 14:55
http://aoki2.si.gunma-u.ac.jp/R/qt3.html
でソースを示している make.dummy 関数と同じ機能を持つ関数でしょうか?
No.21740 【御礼】(Re: 【R】カテゴリカルデータのダミー変数化) 【赤羽】 2015/07/20(Mon) 17:04
青木先生,
赤羽と申します,いつもご教示を頂戴し,誠にありがとうございます。
正に,私が長年,捜し求めていたものでございます!!
ご紹介くださいましたRプログラムの処理のロジックを,勉強させていただきます。
さっそく,活用をさせていただきます。
心から御礼を申しあげます。
● 「統計学関連なんでもあり」の過去ログ--- 047 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る