首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用R中的匹配条件对特定向量进行滤波

如何利用R中的匹配条件对特定向量进行滤波
EN

Stack Overflow用户
提问于 2021-12-03 08:12:55
回答 1查看 96关注 0票数 0

我有两组输入向量。策略号或合同号作为这些输入的值。但一次只有一个人会来。

我需要提取这些数字中的任何一个,并将其放入policy_nr变量中。如果我显式提取代码,代码就能正常工作。

如果我试图放置OR操作符而我得到了这个错误

无效的“x”类型为“x_x_”

输入类型1

代码语言:javascript
复制
kk
 [1] "DUPLICATE x"                                                                                                                
 [2] "ifa’-"                                                                                                                      
 [3] "UPLICAT EXIDE Life"                                                                                                         
 [4] "Insurance"                                                                                                                  
 [5] "02-01-2020"                                                                                                                 
 [6] "Mr DEV WHITE T"                                                                                                       
 [7] "Contract Number : 123456"     

输入类型2

代码语言:javascript
复制
kk
 [1] "DUPLICATE x"                                                                                                                
 [2] "ifa’-"                                                                                                                      
 [3] "UPLICAT EXIDE Life"                                                                                                         
 [4] "Insurance"                                                                                                                  
 [5] "02-01-2020"                                                                                                                 
 [6] "Mr CRAIG WHITE T"                                                                                                       
 [7] "Policy Number : 7890"     

代码

代码语言:javascript
复制
policy_nr <- str_trim(sub(".*:", "", kk[grepl("Contract Number",kk)] ), side = c("both"))  || str_trim(sub(".*:", "", kk[grepl("Policy Number",kk)] ), side = c("both"))
EN

回答 1

Stack Overflow用户

发布于 2021-12-03 09:08:28

您可以使用以下模式:'(?<=(Policy|Contract) Number : ).\\d+'Policy NumberContract Number之后提取数字

代码语言:javascript
复制
library(tidyverse)

kk1 <- c(
  "DUPLICATE x",
  "ifa’-",
  "UPLICAT EXIDE Life",
  "Insurance",
  "02-01-2020",
  "Mr DEV WHITE T",
  "Contract Number : 123456"
)

kk2 <- c(
  "DUPLICATE x",
  "ifa’-",
  "UPLICAT EXIDE Life",
  "Insurance",
  "02-01-2020",
  "Mr CRAIG WHITE T",
  "Policy Number : 7890"
)

kk1 %>% paste(collapse = ' ') %>% 
    str_extract_all('(?<=(Policy|Contract) Number : ).\\d+')

kk2 %>% paste(collapse = ' ') %>% 
    str_extract_all('(?<=(Policy|Contract) Number : ).\\d+')

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70211265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档