R 删除子文本数组之前的文本
我有一组字符串需要处理。对于每个子字符串,如果它们包含一组子字符串,我希望保持子字符串,否则保持不变 下面是一个例子:R 删除子文本数组之前的文本,r,regex,substring,str-replace,gsub,R,Regex,Substring,Str Replace,Gsub,我有一组字符串需要处理。对于每个子字符串,如果它们包含一组子字符串,我希望保持子字符串,否则保持不变 下面是一个例子: keep <- c("USA","UNITED STATES") keep <- paste0(paste0(" ",keep,"$"),collapse="|") data <- c("DETROIT","DETROIT USA
keep <- c("USA","UNITED STATES")
keep <- paste0(paste0(" ",keep,"$"),collapse="|")
data <- c("DETROIT","DETROIT USA","DETROIT UNITED STATES")
expected_result <- c("DETROIT","USA","UNITED STATES")
keep您可以使用stru extract
提取模式(如果存在)。如果模式丢失,则返回NA
,您可以用原始数据替换该模式
keep <- c("USA","UNITED STATES")
keep <- paste0(paste0(" ",keep,"$"),collapse="|")
result <- stringr::str_extract(data, keep)
result[is.na(result)] <- data[is.na(result)]
trimws(result)
#[1] "DETROIT" "USA" "UNITED STATES"
保留您可以使用
数据