是否有可能比较R中相同长度不同水平的两个因素?
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
Run Code Online (Sandbox Code Playgroud)
运行这行代码
mean(A == B)
Run Code Online (Sandbox Code Playgroud)
给我以下错误:
Ops.factor(A,B)中的错误:因素的级别集是不同的
转换为字符然后比较:
# data
A <- factor(1:5)
B <- factor(c(1:3,6,6))
str(A)
# Factor w/ 5 levels "1","2","3","4",..: 1 2 3 4 5
str(B)
# Factor w/ 4 levels "1","2","3","6": 1 2 3 4 4
mean(A == B)
Run Code Online (Sandbox Code Playgroud)
Ops.factor(A,B)中的错误:因素的级别集是不同的
mean(as.character(A) == as.character(B))
# [1] 0.6
Run Code Online (Sandbox Code Playgroud)
或者另一种方法
mean(levels(A)[A] == levels(B)[B])
Run Code Online (Sandbox Code Playgroud)
这在1e8数据集上慢2倍.
| 归档时间: |
|
| 查看次数: |
1850 次 |
| 最近记录: |