我有一个名为“data”的数据集,它看起来像这样:
我尝试创建一个新变量,名为“Group”,它将“FileName”变量中的元素编码为以下内容:
- 含有HC元素的任何物质将被标记为“HC PBMC”
- 任何含有SF和PBMC元素的东西都将被标记为“AS PBMC”
- 任何含有SF和SFMC元素的东西都将被标记为“AS SFMC”
为了做到这一点,我写了这段代码:
data$Group<- ifelse(grepl("HC",data$FileName),"HC",
ifelse(grepl("SF & PBMC",data$FileName),"AS PBMC",
"AS SFMC"))
然而,任何含有SF和PBMC元素的物质都不能正确编码为“AS PBMC”。相反,它只是跳过了这个条件,并将其标记为“AS SFMC”。请参见下文:
任何帮助将是最受欢迎的!
2条答案
按热度按时间jq6vz3qz1#
首先要注意,“&”在正则表达式中没有逻辑“and”的含义。您当然可以使用一些复杂的正则表达式来实现您想要的功能,但是首先提取您考虑用于命名组的组件,然后在第二步中分配case,这样不是更透明吗?
创建于2023-10-12使用reprex v2.0.2
gdrx4gfi2#
根据您尝试的内容,一个简单的解决方案是: