有没有可能比较两个长度相同但不同级别的因素?例如,如果我们有这两个因素变量:
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)
我遇到了以下错误:
这是因为A和B的水平集不同导致的。Error in Ops.factor(A, B) : level sets of factors are different
3
个,总共有5
个,所以3/5 = 0.6
。请注意,TRUE / FALSE
会隐式转换为1/0
,即:TRUE + TRUE = 2
。 - zx8754factor
包装了。使用 microbenchmark 测试后,你的解决方案快了近两倍,这有点令人惊讶。 - akrun