创建分类为二项式的新数据列,而不会覆盖现有数据列

时间:2019-05-03 19:04:24

标签: r

因此,我试图找出如何从数据学院中获取列 Grad.Cat 并将其分类为高值还是低值。但是,我不想在数据框中的同一列中将值更改为“高”和“低”,而是想创建一个新的数据列,称为“ highlow ”。

如何使用以下代码进行操作,而是创建一个包含这些值的新数据列,而不会覆盖现有数据。

College$Grad.Cat <- "low"
College$Grad.Cat[College$Grad.Rate>60] <- "high"
College$Grad.Cat <- factor(College$Grad.Cat, levels = c("low","high"))

谢谢!

1 个答案:

答案 0 :(得分:2)

一个选项是case_when

library(tidyverse)
College <- College %>%
           mutate(Grad.Cat = factor(case_when(Grad.Rate > 60 ~ "high", 
                 TRUE ~ "low")))

或与base R

College$Grad.Cat <- factor(c("low", "high")[1 + (College$Grad.Rate > 60)])