You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何简化recode重复赋值操作并用ifelse实现分组重编码

你可以先将所有需要重编码为1的value取值整理为一个向量,再用%in%运算符配合ifelse完成判断,代码如下:

library(tidyverse)

# 示例数据
data <- data.frame(id=c(1,2,3,4,5,6,7,8,9,10,11,12,13),
                   value=c("1c","3d", "1e","1f","1g", "4h", "1j", 
                           "2f", "2c",  "2d", "2j", "2e", "5i"))

# 预先定义需要重编码为1的所有value取值
group1_values <- c("1c","3d","1e","1f","1g","4h","1j","2d","2j")

# 重编码逻辑
data <- data %>% 
  mutate(category = ifelse(value %in% group1_values, 1, 2))

如果不需要单独维护分组列表,也可以直接把取值向量写在ifelse的判断条件中:

data %>% 
  mutate(category = ifelse(value %in% c("1c","3d","1e","1f","1g","4h","1j","2d","2j"), 1, 2))

以上代码的输出结果和你原有recode写法的结果完全一致,后续调整分组规则时只需要修改向量内的取值即可,不需要逐个修改赋值逻辑,大幅减少冗余代码。

内容的提问来源于stack exchange,提问作者berehan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:15:04