4

さまざまなレベルの要因の大きなリストを生成していますが、それらの2つが同じパーティションを定義していることを検出できるようにしたいと考えています。たとえば、次のすべてが互いに同等であると検出したいとします。

x1 <- factor(c("a", "a", "b", "b", "c", "c", "a", "a"))
x2 <- factor(c("c", "c", "b", "b", "a", "a", "c", "c"))
x3 <- factor(c("x", "x", "y", "y", "z", "z", "x", "x"))
x4 <- factor(c("a", "a", "b", "b", "c", "c", "a", "a"), levels=c("b", "c", "a"))

これを行うための最良の方法は何ですか?

4

1 に答える 1

5

双方向の集計には、一方向の分類と同じ数の入力レベルがあることを確認したいと思います。のデフォルト設定でinteractionは、データが入力されていない場合でもすべてのレベルを表しますが、drop=TRUE を設定すると目的に合わせて変更されます。

> levels (interaction(x1,x2, drop=TRUE) )
[1] "c.a" "b.b" "a.c"
> length(levels(x1) ) == length(levels(interaction(x1,x2,drop=TRUE) ) )
[1] TRUE

一般化すると、次のようになりますall( <the 3 necessary logical comparisons> )

 all( length(levels(x1) ) == length(levels(interaction(x1,x2,drop=TRUE) ) ),
      length(levels(x1) ) == length(levels(interaction(x1,x3,drop=TRUE) ) ),
      length(levels(x1) ) == length(levels(interaction(x1,x4,drop=TRUE) ) ) )
#[1] TRUE
于 2012-09-28T23:23:25.680 に答える