将数值向量简化为R中两级因子
假设我有一个“双”向量将数值向量简化为R中两级因子,r,R,假设我有一个“双”向量 c(-5,-5,-5,-5,1,2,-5,4,3) 我想将所有值都设置为-5作为一个因子,其他所有值都作为另一个因子,这样我会得到如下结果: [1] w w w w b b w b b Levels: b w 我有一种方法可以做到这一点,但它并不优雅,有什么推荐的方法可以用于这种类型的转换吗?我们可以用 factor(c("w", "b")[(v1 >0)+1]) #[1] w w w w b b w b b #Levels: b w 或者使用ifelse
c(-5,-5,-5,-5,1,2,-5,4,3)
我想将所有值都设置为-5作为一个因子,其他所有值都作为另一个因子,这样我会得到如下结果:
[1] w w w w b b w b b
Levels: b w
我有一种方法可以做到这一点,但它并不优雅,有什么推荐的方法可以用于这种类型的转换吗?我们可以用
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我们可以用
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
数据
v1forcats的软件包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")
库(用于猫)
v1forcats的包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")
库(用于猫)
v1因子(x=(c(-5,-5,-5,-5,1,2,-5,4,3)=-5),标签=c(“b”,“w”)
因子(x=(c(-5,-5,-5,-5,1,2,-5,4,3)=-5),标签=c(“b”,“w”)