R语言提取数据框文本列中父本来源信息
假设数据框df如下:
df <- data.frame(品种来源 = c('父本来源:A;母本来源:B', '母本来源:C,父本来源:D', '父本 C, 母本 D', '母本 D, 父本 C'))
我们可以使用正则表达式来提取父本来源的内容:
df$父本来源 <- gsub('.*父本来源[::]?\s*([[:alnum:]]+).*', '\1', df$品种来源)
解释一下这个正则表达式:
.*匹配任意字符(不包括换行符)0次或多次。父本来源匹配'父本来源'这个字符串。[::]?匹配0个或1个冒号或者中文冒号。\s*匹配0个或多个空格。([[:alnum:]]+)匹配1个或多个字母或数字,并将其捕获。.*匹配任意字符(不包括换行符)0次或多次。
我们使用gsub()函数将匹配到的内容替换为捕获的内容,即父本来源。最后将结果存储到新列父本来源中。
执行完上述代码后,数据框df将变为:
品种来源 父本来源
1 父本来源:A;母本来源:B A
2 母本来源:C,父本来源:D D
3 父本 C, 母本 D C
4 母本 D, 父本 C C
原文地址: https://www.cveoy.top/t/topic/nni1 著作权归作者所有。请勿转载和采集!