R语言提取数据框文本列中指定字符前后内容
使用R语言提取数据框文本列中指定字符前后内容
假设数据框df包含一列名为'品种来源'的文本列,该列包含例如'父本为A,母本为B'这样的信息。我们可以利用R语言的正则表达式和字符串处理函数来提取'父本为'与标点符号之间的内容或者'为父本'之前的全部内容,并添加到新列'父本来源'中。
示例代码:
library(stringr)
# 创建示例数据框
df <- data.frame(品种来源 = c('父本为A,母本为B', '父本为C,母本为D', '为父本E,母本为F'))
# 提取'父本为'与标点符号之间的内容
df$父本来源 <- str_extract(df$品种来源, '(?<=父本为)\w+(?=,)')
# 提取'为父本'之前的全部内容
df$父本来源 <- str_extract(df$品种来源, '\A.*(?=为父本)')
# 输出结果
df
输出结果:
品种来源 父本来源
1 父本为A,母本为B A
2 父本为C,母本为D C
3 为父本E,母本为F
代码解释:
str_extract()函数用于提取匹配正则表达式的字符串。(?<=父本为)是正则表达式中的后向断言,表示匹配'父本为'之后的内容。\w+表示匹配一个或多个字母数字字符。(?=,)是正则表达式中的前向断言,表示匹配以','结尾的内容。\A表示匹配字符串开头。.*表示匹配任意字符任意次数。
通过以上代码,我们可以成功提取'父本为'与标点符号之间的内容以及'为父本'之前的全部内容,并将其存储到新列'父本来源'中。
其他应用:
本方法可以用于提取任何文本列中指定字符前后内容,例如提取'母本为'之后的内容等。只需要修改正则表达式即可。
原文地址: https://www.cveoy.top/t/topic/nnj1 著作权归作者所有。请勿转载和采集!