如何在R中筛选含指定首字母IPC分类的专利数据框
解决IPC分类首字母精准筛选问题
针对你遇到的误匹配问题,核心是要让正则表达式只匹配每个IPC代码的开头位置的目标字符,而非字符串中任意位置的字符。以下是具体的R语言实现方法:
直接筛选写法
比如要筛选首字母为F的专利,使用以下代码:
# 精准筛选IPC包含首字母为F的专利 FIPC <- merge123[grepl("^F|\\|F", merge123$IPC), ]
正则表达式解释
^F:匹配整个IPC字符串最开头就是F的情况(对应第一个IPC代码首字母为F)\\|F:匹配|分隔符后面紧跟F的情况(对应后续的IPC代码首字母为F)- 两个规则用
|连接,只要IPC条目中任意一个代码首字母是目标字符,就会被选中
通用复用写法
如果需要频繁切换目标字符,可以把目标字符做成变量,动态生成正则表达式,更灵活:
# 定义目标首字母 target_char <- "A" # 动态构造匹配规则 pattern <- paste0("^", target_char, "|\\|", target_char) # 执行筛选 target_IPC <- merge123[grepl(pattern, merge123$IPC), ]
验证效果
拿你提供的示例IPC条目"G09B 9/04(2013.01)|G09B 19/0053(2013.01)|G09B 19/167(2013.01)|G06F 3/14(2013.01)"测试:
- 用上述规则筛选
F时,该条目不会被选中(因为G06F的F不在代码开头位置) - 若条目包含
Fxxx...或|Fxxx...,则会被正确选中
内容的提问来源于stack exchange,提问作者Cio
相关产品推荐
相关产品推荐

