R语言 在检测到与字符串匹配的字符后提取主题ID

7fhtutme  于 2022-12-30  发布在  其他
关注(0)|答案(1)|浏览(113)

请帮助我在确定不包含指定字符的参与者列表后提取主题ID。例如:
数据:

df <- structure (list(subject_id = c("191-5467", "191-6784", "191-3457", "191-0987", "191-1245", "191-2365"), edta_codes = c("4EDTA-3M783316", "4EDTA-3M2897865", "4EDTA-M280934", "4EDTA-3M286549","MCF -3M289684", "NA")), class = "data.frame", row.names = c (NA, -6L))

用于测试字符是否在字符串中的代码:

df$edta_codes[!grepl("4EDTA-3", df$edta_codes)]

不同方法:

str_detect(df$edta_codes,"4EDTA-3")

两者都给出了我想要的结果,但从这里开始,我想显示不具有指定字符串的受试者ID,包括具有NA的受试者ID(即,在本例中,191 - 3457、191 - 1245、191 - 2365都与指定字符不同)。我尝试在上述每个代码后使用pull,但它们都不起作用。
请帮帮我。

bxjv4tth

bxjv4tth1#

你可以简单地做,

df[!grepl("4EDTA-3", df$edta_codes),'subject_id']
#[1] "191-3457" "191-1245" "191-2365"

如果你还想返回密码,那么,

df[!grepl("4EDTA-3", df$edta_codes),]

#  subject_id    edta_codes
#3   191-3457 4EDTA-M280934
#5   191-1245 MCF -3M289684
#6   191-2365            NA

相关问题