R - 来自数据框的条件 Substr
R - Conditional Substr from dataframe
我需要根据开始和结束位置从列中进行 substr。开始和结束位置来自字符搜索。
例如,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."
另外:
str_extract(x, 'Mr(s?).')
@akrun 有一个建议可以帮助处理更多案例。
str_extract(myvec, '\S+(?=\s*:)')
通过指定 non-space 个字符后跟一个或多个空格和一个冒号,正则表达式模式将捕获各种标题和敬语。
我需要根据开始和结束位置从列中进行 substr。开始和结束位置来自字符搜索。
例如,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."
另外:
str_extract(x, 'Mr(s?).')
@akrun 有一个建议可以帮助处理更多案例。
str_extract(myvec, '\S+(?=\s*:)')
通过指定 non-space 个字符后跟一个或多个空格和一个冒号,正则表达式模式将捕获各种标题和敬语。