LoginSignup
0
0

More than 5 years have passed since last update.

添字の部分マッチ

Last updated at Posted at 2012-11-16

The R language definition を眺めていたら Indexing

[[ forms are rarely used, ... (e.g. it drops any names or dimnames attribute, and that partial matching is used for character indices).

と部分文字列マッチするとあるので,そうだったかしら,と思ってすぐ試した.

> x <- matrix (1:9, nrow = 3)
> dimnames (x) <- list (ABC = c("R1OW1", "R2OW2", "R3OW3"),
+                       DEF = c("C1OL1", "C2OL2", "C3OL3"))
> x["R1", "C2"]
 エラー:  添え字が許される範囲外です 
> x[["R1", "C2"]]
 以下にエラー x[["R1", "C2"]] :  添え字が許される範囲外です 

ならねぇじゃん,と思って読み進めたら,
By-Vector

Setting exact to TRUE prevents partial matching from occurring, a FALSE value allows it

と.バカやろう.この引数指定を見て,そう言えば,そうだったなと思いだした.

> x[["R1", "C2", exact = FALSE]]
[1] 4
> x[["R1", "C2", exact = NA]]
[1] 4
 警告メッセージ: 
1: In x[["R1", "C2", exact = NA]] :  'R1' の 'R1OW1' への部分的マッチ 
2: In x[["R1", "C2", exact = NA]] :  'C2' の 'C2OL2' への部分的マッチ 
> x[["R1", "C2", exact = TRUE]]
 以下にエラー x[["R1", "C2", exact = TRUE]] :  添え字が許される範囲外です 

マニュアルではデフォルトは NA と読めるんだが,TRUE なんでは?

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