将最大水平添加到两个因素
Adding maximal levels to both factors
我有 2 个因素 A 和 B:
因素 A 具有以下水平:
> levels (A)
[1] "1" "2" "3"
而因素 B 具有以下水平:
> levels (B)
[1] "1" "2"
我想计算水平重合的元素的比例,所以我使用以下方法:
C<-mean (A == B)
因为他们必须处于同一水平。我通过以下方式将“3”级别添加到 B:
levels(B) <- c(levels(B), "3")
但这只是一个例子,因为有时 A 的级别比 B 多,有时 B 的级别比 A 多。我想在每个级别中插入最大级别数,以便它们相同并且我将能够计算 C。我该怎么做?
听起来您是在尝试检查两个因子的水平重合的次数比例,而当因子具有不同的水平集时 运行 出错;也许是这样的:
a <- factor(c("a", "b", "c"))
b <- factor(c("b", "b", "c"))
a == b
# Error in Ops.factor(a, b) : level sets of factors are different
与其搞乱因子的水平来消除这个错误,我会简单地使用 as.character
来获取水平的名称然后进行比较:
mean(as.character(a) == as.character(b))
# [1] 0.6666667
我有 2 个因素 A 和 B: 因素 A 具有以下水平:
> levels (A)
[1] "1" "2" "3"
而因素 B 具有以下水平:
> levels (B)
[1] "1" "2"
我想计算水平重合的元素的比例,所以我使用以下方法:
C<-mean (A == B)
因为他们必须处于同一水平。我通过以下方式将“3”级别添加到 B:
levels(B) <- c(levels(B), "3")
但这只是一个例子,因为有时 A 的级别比 B 多,有时 B 的级别比 A 多。我想在每个级别中插入最大级别数,以便它们相同并且我将能够计算 C。我该怎么做?
听起来您是在尝试检查两个因子的水平重合的次数比例,而当因子具有不同的水平集时 运行 出错;也许是这样的:
a <- factor(c("a", "b", "c"))
b <- factor(c("b", "b", "c"))
a == b
# Error in Ops.factor(a, b) : level sets of factors are different
与其搞乱因子的水平来消除这个错误,我会简单地使用 as.character
来获取水平的名称然后进行比较:
mean(as.character(a) == as.character(b))
# [1] 0.6666667