比较 R 中的因子水平

Compare factor levels in R

我对 R 中的因子有疑问。有没有办法比较每个因子的水平?我感兴趣的是一个因素的水平是否是另一个因素水平的子集。例如,假设我们有一个向量:

a <- c(1,1,2,2,3,3,4,4,4)
a1 <- cut(a, breaks=c(1,2,3,4), include.lowest=TRUE)
a2 <- cut(a, breaks=c(1,3,4), include.lowest=TRUE)

levels(a1)
[1] "[1,2]" "(2,3]" "(3,4]"
levels(a2)
"[1,3]" "(3,4]"

所以a2的第一层包括a1的前两层。我需要知道某些数据中的所有此类关系。 R中是否有一个函数可以给我所有这些组合?或者至少是一种手动比较因子水平的方法(可能提取中断),所以我可以编写一个函数来执行此操作?现在我只是通过比较级别的名称来完成它,但这并不是很有效,因为我通常没有间隔设置标签。

我认为您正在寻找 table 函数:

> table(a1, a2)
       a2
a1      [1,3] (3,4]
  [1,2]     4     0
  (2,3]     2     0
  (3,4]     0     3