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

标签 r r-factor equivalence

我正在生成一个包含不同级别的因素的大列表,并且我希望能够检测其中两个因素何时定义相同的分区。例如,我想将以下所有内容检测为彼此等效:

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"))

最好的方法是什么?

最佳答案

我猜您想要确定双向表格与单向分类具有相同数量的填充级别。 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

关于r - 在R中,如何测试两个因子是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12648407/

相关文章:

Mysql 到 MongoDB 以及与此模式等效的查询

JavaScript 比较运算符 : Identity vs. 相等

mysql - R 数据库连接错误

r - 绘制引导插入符号模型的 ROC 曲线

r - 当我附加到向量时,为什么我的角色会发生变化?

r - 计算级别内的值

testing - 如何在 Golang 中测试 map 的等价性?

R 插入符号错误 : Something is wrong; all the Accuracy metric values are missing:

r - 矩阵可以包含不同类别的元素

r - 包含NA的因子列的唯一值=> “Hash table is full”错误