使用grepl()分组标记时SF&PBMC条件匹配失效求助
问题分析与解决方案
问题原因
你的代码中第二个条件grepl("SF & PBMC", data$FileName)无法匹配目标文件名,大概率是因为实际文件名里并没有精确的SF & PBMC字符串,而是同时包含"SF"和"PBMC"两个独立关键词。这会导致第二个条件判断返回FALSE,进而触发第三个分支,将这类文件错误标记为"AS SFMC"。
修正后的代码
将匹配逻辑改为分别检查关键词的存在,用逻辑与(&)组合条件:
data$Group <- ifelse( grepl("HC", data$FileName), "HC PBMC", ifelse( grepl("SF", data$FileName) & grepl("PBMC", data$FileName), "AS PBMC", ifelse( grepl("SF", data$FileName) & grepl("SFMC", data$FileName), "AS SFMC", NA # 给不符合任何规则的行标记NA,避免误判 ) ) )
补充说明
- 若不确定文件名的精确格式,可先运行
unique(data$FileName)查看所有文件名的具体内容,确保匹配逻辑准确。 - 加入
NA作为默认值,能快速发现不符合规则的异常数据。
内容的提问来源于stack exchange,提问作者Zoya Qaiyum
相关产品推荐
相关产品推荐

