首页 > 解决方案 > 有没有办法在 R 中使用 dplyr 根据另一个列的值创建一个新列?

问题描述

我一直在使用 base R,但我想使用dplyr. 这就是我一直在做的事情:

data$newvariable <- 0
data$newvariable[data$oldvariable=="happy"] <- "good"
data$newvariable[data$oldvariable=="unhappy"] <- "bad"
data$newvariable[data$oldvariable=="depressed"] <- "super_bad"

标签: rdplyrrecode

解决方案


如果 oldvariable 是一个因素,并且您不介意 newvariable 是一个因素:

library(dplyr)

set.seed(111)
data = data.frame(
oldvariable=sample(c("happy","unhappy","depressed"),10,replace=TRUE))

data %>% mutate(newvariable=recode_factor(oldvariable,
"happy"="good","unhappy"="bad","depressed"="super_bad"))


   oldvariable newvariable
1      unhappy         bad
2    depressed   super_bad
3    depressed   super_bad
4    depressed   super_bad
5        happy        good
6    depressed   super_bad
7        happy        good
8    depressed   super_bad
9      unhappy         bad
10       happy        good

推荐阅读