在R中,如何测试两个因素是否相等?

Rya*_*son 5 r equivalence r-factor

我正在生成一大堆具有不同级别的因素,并且我希望能够检测到其中两个何时定义了相同的分区。例如,我要检测以下各项是否相等:

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"))
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

42-*_*42- 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
Run Code Online (Sandbox Code Playgroud)

概括将着眼于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
Run Code Online (Sandbox Code Playgroud)