LoginSignup
0
0

More than 3 years have passed since last update.

RでLookup Tableを作る

Posted at

Advanced R に Lookup Table に関する記載があり、知らなかったので備忘のためにまとめました。

Lookup Table

まずは Lookup Table でなにをしているのか Advanced R のコードを見てみます。

x <- c("m", "f", "u", "f", "f", "m", "m")
lookup <- c(m = "Male", f = "Female", u = NA)
lookup[x]
#>        m        f        u        f        f        m        m 
#>   "Male" "Female"       NA "Female" "Female"   "Male"   "Male"

名前付きベクトルを使って略称を変換しています。
最初にこのコードを見た時なぜこんな挙動になるのかイマイチわかりませんでしたが、文字列ベクトルを使ったデータ抽出の挙動を振り返ると合点がいきました。

なぜ変換されるのか

名前付きベクトルに対して、文字列ベクトルを使ってデータ抽出を行うときの挙動があります。
以下2つの性質を利用することで Lookup Table が実現されています。

名前が一致する要素を返す

lookup[c("m", "f")]
#>       m        f 
#>  "Male" "Female" 

同じ添字を繰り返すことができる

整数添字と同じように繰り返すことができます。

lookup[c("m", "m", "m")]
#>     m      m      m 
#> "Male" "Male" "Male"

おまけ: 定義されていない名前でのアクセス

存在しない名前でのアクセスは、範囲外として NA が返ってきます。

lookup[c("m", "x")]
#>      m   <NA> 
#> "Male"     NA

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0