比较 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
我对 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