No.21727 【R】条件分岐のswitch文のパフォーマンス向上  【赤羽】 2015/07/07(Tue) 22:48

青木先生,
赤羽と申します,ご教示をよろしくお願いいたします。

昨日は,【R】データフレーム間の特定の要素のコピーの質問で,
有難いご教示を頂戴し,大変に助かりました。
さっそく活用させていただきました。

青木先生,もう一点,教えていただきたいことがございます。
よろしくお願いいたします。

---

大規模なデータフレームですので,処理の効率化が課題です。

列名「番号」には,ある範囲の整数値が格納されています(例えば,1〜10)。

列名「名称」には,以下の対応表に基づいて,「番号」に対応するラベルを代入します。

【対応表】
「番号」=1  ⇒ 「名称」="あああ"
「番号」=2  ⇒ 「名称」="いいい"
・・・・
「番号」=10 ⇒ 「名称」="こここ"

行方向にループを回し,
取得した「番号」の値に基づいて,条件分岐のswitch文で判定して,
対応表から引いたラベルを,「名称」に代入しています。

大規模なデータフレームですので,処理の効率化が課題です。
ご助言を頂戴できれば,大変に助かります。

どうぞ,お力を貸してください。
よろしくお願いいたします。

No.21728 Re: 【R】条件分岐のswitch文のパフォーマンス向上  【青木繁伸】 2015/07/08(Wed) 11:15

名称 <- c("あああ", "いいい", "ううう", "えええ", "おおお") # 1 から順に対応する名称を定義

d <- data.frame(番号=c(1,3,2,4,1,2,5))
d$名称 <- 名称[d$番号] # この一行でできます
d

No.21729 【御礼】 Re: 【R】条件分岐のswitch文のパフォーマンス向上  【赤羽】 2015/07/08(Wed) 22:19

青木先生,
赤羽と申します,ご教示をありがとうございました。

おかげさまで,劇的なパフォーマンス向上を実現できました。

併せて,R言語の特徴的なコードの良いお手本を見せていただき,
大変に良い勉強をさせていただきました。

心から御礼を申し上げます。

● 「統計学関連なんでもあり」の過去ログ--- 047 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る