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

R语言如何互换指定数据列中1和2的变量取值?

R语言测试题得分反向转换实现方法

核心逻辑:你的得分只有1、2两个固定取值,反向转换可以直接通过3 - 原得分实现,比条件判断更简洁高效,也可以用条件分支适配有异常值/缺失值的场景。

基础R实现(无需加载额外包)

  • 假设你读取的Excel数据存储在数据框df中,且已经生成了目标列向量CD,直接批量转换即可:
df[CD] <- lapply(df[CD], function(x) 3 - x)
  • 如果数据中存在缺失值或者非1/2的异常值,建议用条件判断写法避免错误修改:
df[CD] <- lapply(df[CD], function(x) ifelse(x == 1, 2, ifelse(x == 2, 1, x)))

以上写法会保留非1/2的原始值(包括NA),容错性更高。

tidyverse/dplyr 实现(适配管道操作)

如果你习惯用tidyverse生态的语法,可以用across批量处理目标列:

library(dplyr)
df <- df %>% 
  mutate(across(all_of(CD), ~ ifelse(.x == 1, 2, 1)))

结果验证

转换完成后可以执行以下代码抽查前几行的结果,确认转换符合预期:

head(df[CD])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:18:04