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

求助:基于ID列新增Flag标记列的R语言实现

实现方法

首先先把你的示例数据转换成R可使用的数据框:

heroes <- data.frame(
  name = c("Spider-man", "Captain America", "Wolverine", "Iron Man", "Thor", "Otto Octavius", "Reed Richards"),
  ID = c("Secret Identity", "Public Identity", "Public Identity", "Public Identity", "No Dual Identity", "Secret Identity", "Public Identity"),
  stringsAsFactors = FALSE
)

方法1:基础R的ifelse()函数

这是适合新手的基础方法,直接通过条件判断生成新列:

heroes$Flag <- ifelse(heroes$ID == "Secret Identity", 0, 1)

方法2:tidyverse/dplyr包实现

如果你习惯用tidyverse生态的工具,可以用dplyr::mutate()配合条件判断函数实现:

用ifelse

library(dplyr)
heroes <- heroes %>%
  mutate(Flag = ifelse(ID == "Secret Identity", 0, 1))

用case_when(适配多条件场景)

如果之后需要扩展更多标记规则,case_when的可读性更强:

library(dplyr)
heroes <- heroes %>%
  mutate(Flag = case_when(
    ID == "Secret Identity" ~ 0,
    TRUE ~ 1
  ))

运行任意一种方法后,都会得到你期望的结果:

name               ID Flag
1       Spider-man Secret Identity    0
2  Captain America  Public Identity    1
3        Wolverine  Public Identity    1
4         Iron Man  Public Identity    1
5             Thor No Dual Identity    1
6    Otto Octavius Secret Identity    0
7    Reed Richards  Public Identity    1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:15:38