R-来自数据帧的条件Substr

R-来自数据帧的条件Substr,r,dataframe,character,substring,substr,R,Dataframe,Character,Substring,Substr,我需要根据开始和结束位置从列中删除。起始和结束位置是从字符搜索派生的 例如,Dataframe中的一列包含3行: 'Bond, Mr. :James' 'Woman, Mrs. :Wonder' 'Hood, Mr. :Robin' 第2栏中的预期答案是: 'Mr.' 'Mrs.' 'Mr.' 我想提取列1中介于“,”和“:”之间的所有字符串。请尝试gsub(“*,|::*,”,myvec)您可以使用stringr包执行常见的字符串操作,如修剪、子字符串或提取模式: library(stri

我需要根据开始和结束位置从列中删除。起始和结束位置是从字符搜索派生的

例如,Dataframe中的一列包含3行:

'Bond, Mr. :James'
'Woman, Mrs. :Wonder'
'Hood, Mr. :Robin'
第2栏中的预期答案是:

'Mr.'
'Mrs.'
'Mr.'

我想提取列1中介于“,”和“:”之间的所有字符串。

请尝试
gsub(“*,|::*,”,myvec)
您可以使用stringr包执行常见的字符串操作,如修剪、子字符串或提取模式:

library(stringr)
str_trim(str_sub(str_extract(x, ",[^:]*"), 2))
# [1] "Mr."  "Mrs." "Mr." 
此外:

@akrun建议帮助处理更多案件

str_extract(myvec, '\\S+(?=\\s*:)')

通过指定后跟一个或多个空格和冒号的非空格字符,regex模式将捕获各种标题和敬语。

@akrun我发现大多数regex问题都受到OP示例的限制。如果存在异常示例,为什么要发布三个相同布局的示例?通过展示一些多样性,可以实现有针对性的帮助。我同意。也许,我希望寻求帮助的人能做出更多努力,更好地描述他们的问题。
str_extract(myvec, '\\S+(?=\\s*:)')