我不知道为什么我在努力解决这个问题,因为似乎有很多SO答案可以解决这个问题.但我在这里.
我将1和0的向量转换为因子,并将值标记为"是"和"否".
fact <- factor(c(1,1,0,1,0,1),
levels=c(1,0),
labels=c("yes", "no"))
#[1] yes yes no yes no yes
#Levels: yes no
Run Code Online (Sandbox Code Playgroud)
关于将因子转换回数值的问题的答案建议as.numeric(as.character(x))和as.numeric(levels(x)[x].
as.numeric(as.character(fact))
#[1] NA NA NA NA NA NA
as.numeric(levels(fact))[fact]
#[1] NA NA NA NA NA NA
Run Code Online (Sandbox Code Playgroud)
最简单的解决方案是更改指定对因子调用的方式,以便它可以处理任意数量的数字级别。
fact <- factor(c(1,1,0,1,0,1, 2),
levels=c(0,1, 2),
labels=c("no", "yes", "maybe"))
as.numeric(fact) - 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
847 次 |
| 最近记录: |