【发布时间】:2016-06-22 08:05:07
【问题描述】:
是否可以比较两个长度相同但水平不同的因素?例如,如果我们有这 2 个因子变量:
A <- factor(1:5)
str(A)
Factor w/ 5 levels "1","2","3","4",..: 1 2 3 4 5
B <- factor(c(1:3,6,6))
str(B)
Factor w/ 4 levels "1","2","3","6": 1 2 3 4 4
如果我尝试使用例如== 运算符来比较它们:
mean(A == B)
我收到以下错误:
Ops.factor(A, B) 中的错误:因子的水平集不同
【问题讨论】:
-
请您解释一下比较两个因素是什么意思。我不清楚。
-
@user2100721 我假设他们想知道重叠的比例。在我的帖子中的示例中,重叠是
3在5、3/5 = 0.6中。请注意,TRUE/FALSE隐式转换为1/0,即:TRUE + TRUE = 2。 -
@zx8754 谢谢。明白你的意思。
-
@zx8754 抱歉打扰了,我之前忘记用
factor包装了。使用 microbenchmark,您的解决方案速度几乎快了 2 倍,这有点令人惊讶。 -
@zx8754 我根本不关心代表 :-)