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

提取样本名称片段编码新变量:R语言ifelse语句问题求助

解决DataFrame中基于字符串片段匹配创建新变量的问题

你的问题出在使用了==进行精确匹配,但实际上需要检查字符串是否包含指定片段,而非完全相等。可以用R的grepl()函数实现模糊匹配,它会返回一个布尔向量,标记每个字符串是否包含目标模式。

修正后的完整代码

# 数据结构
SAMPLE <- c("HC1374 PBMC","HC462 PBMC","AS234 SFMC","AS958 PBMC","HC73 PBMC","AS09 SFMC")
VALUES <- c(46,749,62,84,888,52)
data <- data.frame(SAMPLE,VALUES)

# 创建SAMPLETYPE:检查样本名是否包含HC,是则标记HC,否则标记AS
data$SAMPLETYPE <- ifelse(grepl("HC", data$SAMPLE), "HC", "AS")

# 创建TISSUETYPE:检查样本名是否包含PBMC,是则标记Blood,否则标记SF
data$TISSUETYPE <- ifelse(grepl("PBMC", data$SAMPLE), "Blood", "SF")

# 查看结果
print(data)

运行结果

SAMPLE VALUES SAMPLETYPE TISSUETYPE
1 HC1374 PBMC     46         HC       Blood
2  HC462 PBMC    749         HC       Blood
3  AS234 SFMC     62         AS         SF
4  AS958 PBMC     84         AS       Blood
5   HC73 PBMC    888         HC       Blood
6   AS09 SFMC     52         AS         SF

关键说明

  • grepl(pattern, x):第一个参数是要匹配的字符串模式,第二个参数是待检查的字符串向量,返回对应位置的逻辑值(TRUE/FALSE)。
  • 这里不需要使用正则表达式特殊语法,直接传入普通字符串即可完成包含匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:55:14