一所懸命に手抜きする

デスクワークばかりのスポーツ嫌いで50歳も過ぎ、いよいよ足腰に衰えを感じつつある昨今。

Rで連想配列的なことをしたい(2)

連想配列(1)

a-habakiri.hateblo.jp

 ディクショナリやハッシュ、マップなどいろいろ呼び方はあるもののいわゆる連想配列のようなものをRで実現したいと思いました。
 前回は、一行データフレームに列ラベルをつけ、列ラベルから要素の値を呼び出すことで連想配列代わりにしてみました。
 例として、ラベル S001 から 値 支社番号 を呼び出しました。
 しかし、この方法では逆は簡単にはできません。
 値 支社番号 から ラベル S001 を呼び出すのは難しいのです。

連想配列(2)

多次元データフレームを利用する

 双方向の呼び出しができるように、多次元データフレームを利用してみます。ここでは二次元で。

# 連想配列代わりにデータフレーム作成
jp<-c("支社番号","支社名","支店番号","支店名")
en<-c("S001","S002","S003","S004")
df<-data.frame(en,jp,stringsAsFactors=FALSE)

df[en=="S001",]$jp
##[1] 支社番号

df[jp=="支社番号",]$en
##[1] S001

 このように相互に呼び出しが可能になります。もちろん三変数以上でも対応させられます。