我有两组输入向量。策略号或合同号作为这些输入的值。但一次只有一个人会来。
我需要提取这些数字中的任何一个,并将其放入policy_nr变量中。如果我显式提取代码,代码就能正常工作。
如果我试图放置OR操作符而我得到了这个错误
无效的“x”类型为“x_x_”
输入类型1
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
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" 代码
policy_nr <- str_trim(sub(".*:", "", kk[grepl("Contract Number",kk)] ), side = c("both")) || str_trim(sub(".*:", "", kk[grepl("Policy Number",kk)] ), side = c("both"))发布于 2021-12-03 09:08:28
您可以使用以下模式:'(?<=(Policy|Contract) Number : ).\\d+'在Policy Number或Contract Number之后提取数字
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+')

https://stackoverflow.com/questions/70211265
复制相似问题