在R语言中为Data数据框添加符合条件的task列的实现咨询
在R语言中实现自定义规则生成task列
当然可以实现这个需求,下面提供两种常用的实现方式:
方法一:基础R的嵌套ifelse语句
直接利用基础R的ifelse()函数嵌套判断条件,一步生成目标列:
# 覆盖原task列(若需保留原列可将左侧改为Data$new_task) Data$task <- ifelse( Data$order == "sc", ifelse(Data$time %% 2 == 1, "simple", "complex"), ifelse(Data$time %% 2 == 1, "complex", "simple") ) # 查看结果 print(Data)
方法二:使用dplyr包的case_when(更易读)
如果习惯使用tidyverse系列工具,case_when()可以更清晰地写出多条件规则:
library(dplyr) Data <- Data %>% mutate(task = case_when( order == "sc" & time %% 2 == 1 ~ "simple", order == "sc" & time %% 2 == 0 ~ "complex", order == "cs" & time %% 2 == 1 ~ "complex", order == "cs" & time %% 2 == 0 ~ "simple" )) # 查看结果 print(Data)
两种方法运行后都会得到符合规则的结果:
id order time task 1 1 sc 1 simple 2 1 sc 2 complex 3 2 cs 1 complex 4 2 cs 2 simple 5 3 sc 1 simple 6 3 sc 2 complex 7 4 cs 1 complex 8 4 cs 2 simple
内容的提问来源于stack exchange,提问作者Simon Harmel
相关产品推荐
相关产品推荐

