假设我有一个' double'向量
c(-5,-5,-5,-5,1,2,-5,4,3)
我想将所有值设置为-5作为一个因素,将所有其他值设置为另一个因素,以便我可以使用以下内容:
[1] w w w w b b w b b
Levels: b w
我有办法做到这一点,但它不优雅,是否有任何推荐的方法进行此类转换?
答案 0 :(得分:3)
我们可以用
来做到这一点factor(c("w", "b")[(v1 >0)+1])
#[1] w w w w b b w b b
#Levels: b w
或使用ifelse
factor(ifelse(v1 > 0, "b", "w"))
#[1] w w w w b b w b b
#Levels: b w
v1 <- c(-5,-5,-5,-5,1,2,-5,4,3)
答案 1 :(得分:3)
包forcats
包含很多用于处理因子的好函数。解决问题的一种方法是:
library(forcats)
v1 <- as.factor(c(-5,-5,-5,-5,1,2,-5,4,3))
fct_recode(fct_other(v1, keep = "-5", other_level = "b"), w = "-5")