gpt4 book ai didi

r - 根据 R 中字符串变量的部分匹配进行过滤

转载 作者:行者123 更新时间:2023-12-04 10:43:18 28 4
gpt4 key购买 nike

我有一个带有字符串变量列“疾病”的数据框。我想过滤部分匹配“创伤”或“创伤”的行。我目前使用 dplyr 完成了以下操作和 stringr :

trauma_set <- df %>% filter(str_detect(disease, "trauma|Trauma"))

但结果还包括“非创伤性”和“非创伤性”。如何仅过滤“外伤、外伤、外伤或外伤”而不包括非外伤或非外伤?另外,有没有一种方法可以定义要检测的字符串,而不必同时指定字符串的大写和小写版本(如创伤和创伤)?

最佳答案

如果我们想指定单词边界,使用 \\b在开始时。另外,对于不同的情况,我们可以使用 ignore_case = TRUEmodifiers 包裹

library(dplyr)
library(stringr)
out <- df %>%
filter(str_detect(disease, regex("\\btrauma", ignore_case = TRUE)))

sum(str_detect(out$disease, regex("^Non", ignore_case = TRUE)))
#[1] 0

数据
set.seed(24)
df <- data.frame(disease = sample(c("Nontraumatic", "Trauma",
"Traumatic", "nontraumatic", "traumatic", "trauma"), 50 ,
replace = TRUE), value = rnorm (50))

关于r - 根据 R 中字符串变量的部分匹配进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59829668/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com