R语言数据框提取文本列中指定字符内容
使用R语言提取数据框文本列中指定字符内容
本文将介绍如何使用R语言提取数据框中文本列(列名为'品种来源')中指定字符('父本为'或者'为父本')与标点符号之间的内容,并添加到新列'父本来源'。
代码示例
# 创建数据框
df <- data.frame(品种来源 = c('A品种为父本,B品种为母本', 'C品种父本为D品种,母本为E品种', 'F品种为父本,G品种为母本', 'H品种母本为I品种,父本为J品种'))
# 创建新列并初始化为空字符串
df$父本来源 <- ''
# 使用正则表达式提取符合要求的内容
df$父本来源[grep('父本为|为父本', df$品种来源)] <- gsub('.*父本为|.*为父本', '', df$品种来源[grep('父本为|为父本', df$品种来源)])
# 查看最终结果
print(df)
代码解释
- 创建新列并初始化为空字符串
df$父本来源 <- ''
- 这行代码创建了一个新的列名为'父本来源',并将其初始化为空字符串。
- 使用正则表达式提取符合要求的内容
df$父本来源[grep('父本为|为父本', df$品种来源)] <- gsub('.*父本为|.*为父本', '', df$品种来源[grep('父本为|为父本', df$品种来源)])
grep('父本为|为父本', df$品种来源):返回'品种来源'列中包含'父本为'或'为父本'的行的索引。df$品种来源[grep('父本为|为父本', df$品种来源)]:返回'品种来源'列中包含'父本为'或'为父本'的行的内容。gsub('.*父本为|.*为父本', '', df$品种来源[grep('父本为|为父本', df$品种来源)]):使用正则表达式提取符合要求的内容。该正则表达式的含义是:匹配任意字符(包括换行符)0次或多次,后面跟着'父本为'或'为父本',并将其替换为空字符串。最终返回提取出来的内容。
- 查看最终结果
print(df)
- 打印数据框,查看结果。
总结
通过上述代码,我们可以使用正则表达式提取数据框中文本列中指定字符与标点符号之间的内容,并添加到新列,方便后续数据分析。
原文地址: https://www.cveoy.top/t/topic/nnjC 著作权归作者所有。请勿转载和采集!