首页 > 解决方案 > 如何按变量值类型添加变量?

问题描述

我有一个 data.frame 具有不同级别的可变工作- 经理,主管,SelfEmployed,官员,高度专业的员工,低技术工人,非技术工人。我想添加带有变量类的新列,其中高级工人的值为 1 低级工人的值为 2。

Data.frame 会像:

head(df)
# Job                  Class
# Manager               1
# Supervisor            1
# Low skilled worker    2
# Low skilled worker    2 
# Unskilled worker      2
# Manager               1

标签: r

解决方案


base R您可以使用:

df$Class <- ifelse(df$Job %in% c("Manager", "Supervisor"), 1, 2)

dplyr解决方案:

df <- df %>% 
  mutate(Class = ifelse(Job %in% c("Manager", "Supervisor"), 1, 2))

data.table解决方案:

setDT(df)
df[, Class := fifelse(Job %in% c("Manager", "Supervisor"), 1, 2)]

数据:

df <- tribble(
  ~Job, ~Class,
  "Manager", 1,
  "Supervisor", 1,
  "Low skilled worker", 2, 
  "Low Skilled worker", 2,
  "Unskilled worker", 2, 
  "Manager", 1
)

推荐阅读