r语言 - 在检测到与字符串匹配的字符后提取主题id



请在确定不包含指定字符的参与者列表后帮我拉主题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,它们都不起作用。

请帮助。

你可以这么做,

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

最新更新