我正在尝试将专利数据框过滤到其分类代码中。我只想获取代码中具有特定首字母的专利,但每个列条目都有多个这些代码,有时以不同的字母结尾,有时也有不同的起始字母(如果相关,它们是 IPC 类别) .
例如,条目如下所示:
“G09B 9/04(2013.01)|G09B 19/0053(2013.01)|G09B 19/167(2013.01)|G06F 3/14(2013.01)”
因此,如果我想要所有具有 F 一级分类的专利,即使其中一个代码末尾只有 F,该条目也会提供给我。
我尝试了这个,但遇到了问题
AIPC <- merge123[grepl("A",merge123$IPC),]
我对 R 相当陌生,所以请原谅我,如果这是一个愚蠢的问题。
如果没有可重现的数据,这有点困难,但如果您的数据采用这种一致的格式 - 字母、2 个数字、感兴趣的字母、空格、数字 - 您只需指定模式即可。
[A-Z]
寻找任何字母\\d{2}
专门寻找 2 个数字F
寻找“F”\\s
寻找空白\\d+
查找 1 个或多个数字所以你可以这样做:
grep("[A-Z]\\d{2}F\\s\\d+", x, value = TRUE)
其中
x
是您感兴趣的变量。以下是一些示例数据来演示:
x <- c("G09B 9/04(2013.01)|G09B 19/0053(2013.01)|G09B 19/167(2013.01)|G06F 3/14(2013.01)", #original
"G09B 9/04(2013.01)|G09B 19/0053(2013.01)|G09B 19/167(2013.01)|G06B 3/14(2013.01)", # without F
"G09B 9/04(2013.01)|G09F 19/0053(2013.01)|G09B 19/167(2013.01)|G06B 3/14(2013.01)", # F in different place
"ABC DEF HIJ", #arbitrary 1
"The cat jumped over the lazy fox", # arbitrary 2
"123F F162") # arbitrary 3
运行指定模式的
grep
将返回您想要的:
grep("[A-Z]\\d{2}F\\s\\d+", x, value = TRUE)
# [1] "G09B 9/04(2013.01)|G09B 19/0053(2013.01)|G09B 19/167(2013.01)|G06F 3/14(2013.01)"
# [2] "G09B 9/04(2013.01)|G09F 19/0053(2013.01)|G09B 19/167(2013.01)|G06B 3/14(2013.01)"