使用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 表示匹配字符串开头。
  • .* 表示匹配任意字符任意次数。

通过以上代码,我们可以成功提取'父本为'与标点符号之间的内容以及'为父本'之前的全部内容,并将其存储到新列'父本来源'中。

其他应用:

本方法可以用于提取任何文本列中指定字符前后内容,例如提取'母本为'之后的内容等。只需要修改正则表达式即可。

R语言提取数据框文本列中指定字符前后内容

原文地址: https://www.cveoy.top/t/topic/nnj1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录