ファジィマルチ集合をカスタマイズしよう

  • 要素の一致の取り方をカスタマイズできる
  • 要素の表示順のつけ方をカスタマイズできる
  • 要素の一致に関する注意
    • Rには、一致をとる関数に"identical()"と"match()"、"all.equal()"がある
> match(1,1L)
[1] 1
> match(1,"1")
[1] 1
> match("1",1L)
[1] 1
> all.equal(1,1L)
[1] TRUE
> if(isTRUE(all.equal(1,"1")))print("t")
> if(!isTRUE(all.equal(1,"1")))print("t")
[1] "t"
> if(isTRUE(all.equal("1",1L)))print("t")
> if(!isTRUE(all.equal("1",1L)))print("t")
[1] "t"
> identical(1,1L)
[1] FALSE
> identical(1,"1")
[1] FALSE
> identical("1",1L)
[1] FALSE
# なので、こんな例も
> identical(2.2-1.1,1.1)
[1] TRUE
> identical(3.3-2.2,1.1)
[1] FALSE
# したがってidentical()を用いているsetsパッケージでは以下のように「変」になることに注意
> x<-set("1",1,1L,1.1,1.1*1,2.2-1.1)
> print(x)
{"1", 1L, 1, 1.1}
> x<-set("1",1,1L,1.1,1.1*1,3.3-2.2)
> print(x)
{"1", 1L, 1, 1.1, 1.1}