当前位置: 首页 > news >正文

R语言 csv新增一列 dplyr操作

下面把这段只有 7 行的代码逐行、逐符号拆开讲,保证你以后遇到类似的“根据某列内容生成新标签”任务,可以直接套模板。


1. 读进来的数据长啥样?

phe 已经是 tibble(一种加强版数据框),其中有一列叫
histologic type:ch1(注意列名里有空格和冒号,所以必须用反引号 ` 包裹)。

geo_accessionhistologic type:ch1…其他列…
GSM816546adenocarcinoma
GSM816554large cell neuroendocrine carcinoma
GSM816559small cell carcinoma

2. 代码逐字解释

phe <- phe %>%                       # 把 phe 自己重新赋值,方便后面直接用mutate(                            # dplyr::mutate:新增/修改列class = case_when(               # dplyr::case_when:多条件“如果…就…”`histologic type:ch1` == "adenocarcinoma" ~ "PC",#  ↑ 条件1                          ↑ 条件1成立时返回的值`histologic type:ch1` %in% c("large cell neuroendocrine carcinoma","small cell carcinoma") ~ "NEPC",#  ↑ 条件2(向量匹配)                ↑ 条件2成立时返回的值TRUE ~ NA_character_             # 兜底:以上都不满足就给缺失值))

3. 关键语法点

符号/函数作用
%>%管道符,把左边的结果直接送进右边函数的第一个参数,避免嵌套括号。
`histologic type:ch1`列名里有空格、冒号、连字符等,必须加反引号,否则 R 会报错。
==精确匹配单个字符串。
%in%向量匹配,一次比对多个候选字符串,返回 TRUE/FALSE。
c(...)把多个字符串拼成向量。
TRUE ~case_when 的“其他情况”写法,必须放在最后。
NA_character_字符型缺失值,与数值型 NA 区分。

4. 执行完的效果

原表多了 1 列 class,内容只有两种:

geo_accessionhistologic type:ch1class
GSM816546adenocarcinomaPC
GSM816554large cell neuroendocrine carcinomaNEPC
GSM816559small cell carcinomaNEPC

5. 模板化记忆

以后任何“根据某列内容打标签”的任务,直接套下面骨架:

df <- df %>%mutate(新列 = case_when(旧列 == "A"          ~ "标签1",旧列 %in% c("B","C") ~ "标签2",TRUE                 ~ NA_character_))

df旧列新列标签* 换成你自己的名字即可。

http://www.dtcms.com/a/394019.html

相关文章:

  • IDEA创建Module子项目后,只有一个普通的文件夹
  • 支持向量机深度解析:从数学原理到工程实践的完整指南
  • 2025华为杯研究生数学建模竞赛B题及求解思路
  • 三星CIS全球产能布局解析:本土根基、海外扩张与策略雄心
  • js集装箱号校验算法
  • 【机器学习】最优传输(OT)和 KL散度的区别
  • 推荐一个随机生成图片的网站: Lorem Picsum
  • APE自动化提示词工程
  • 探究某黄鱼x-sign生成算法——终极篇
  • 霍尔传感器安装错位下的FOC控制:线性插值与锁相环(PLL)算法的抉择
  • FFmpeg 深入精讲(三)FFmpeg 中级开发
  • AI驱动下的蛋白质设计
  • ARM基本汇编操作指令
  • 电商搜索 API 的优化与性能提升:从瓶颈突破到体验升级
  • 使用DeepSeek辅助测试一个rust编写的postgresql协议工具包convergence
  • 【00】EPGF 架构搭建教程之 总揽篇
  • 深度剖析 vector 底层原理:从手写实现到核心技术点全解析
  • 嵌入式开发学习日志29——stm32之定时器中断
  • 通俗范畴论17.3 向量空间的对偶与双对偶
  • 表格 表头增加悬浮提示内容
  • emacs段落重排快捷键
  • 第九届人单合一模式引领论坛举行 构建AI时代的智能交互生态
  • 不用搜驱动!惠普官方工具:自动适配,坏了直接重装
  • JAVA八股文——java虚拟机栈
  • 华为MindSpeed 训练加速库:架构解析
  • Java的Stream实现对list实用操作【持续更新】
  • 【AI智能体】Dify集成 Echarts实现数据报表展示实战详解
  • 【01】EPGF 架构搭建教程之 Anaconda 安装指南
  • 深度学习周报(9.15~9.21)
  • MCP实战:使用 LangGraph 和 MCP 协议无缝集成外部工具