Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数值向量简化为R中两级因子_R - Fatal编程技术网

将数值向量简化为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”)