R根据条件创建因子

Sel*_*rac 5 r type-conversion

我需要根据数值高于或低于 10 将一列从数字更改为因子。

例如使用以下数据:

age <- c(1:20)
hight <- c(1:20)
d.frame <- data.frame(age, hight)
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

d.frame$hight <- factor(d.frame$hight, levels( 1:9, 10:max(d.frame$hight) ), labels=c('low','high'))
Run Code Online (Sandbox Code Playgroud)

d.frame$hight <- factor(d.frame$hight, levels( <10, >=10) ), labels=c('low','high'))
Run Code Online (Sandbox Code Playgroud)

但是不要工作。

现在有什么想法可以进行这种类型转换吗?

谢谢

akr*_*run 8

我们可以使用根据条件cut更改numerictofactor

d.frame$hight <- cut(d.frame$hight, breaks = c(-Inf, 10, Inf), 
             labels = c('low', 'high'), right = FALSE)
Run Code Online (Sandbox Code Playgroud)

由于只有两个级别,另一种选择是创建一个逻辑向量并用于ifelse更改值

d.frame$hight <- factor(ifelse(d.frame$hight>=10, "high", "low"))
Run Code Online (Sandbox Code Playgroud)