У меня есть таблица со столбцом «тип членства», который включает в себя миллионы различных уровней членства, которые мы использовали на протяжении многих лет.
example <-data.frame(membership = c( "Legacy Payment ID #3564, Payment Record #0, Period Paid: 1 Flag: N",
"Legacy Payment ID #3611, Payment Record #0, Period Paid: 2 Flag: N",
"Legacy Payment ID #4105, Payment Record #0, Period Paid: 1 Flag: G",
"Legacy Payment ID #4136, Payment Record #0, Period Paid: 1 Flag: N",
"Legacy Payment ID #5191, Payment Record #0, Period Paid: 1 Flag: N ",
"Individual (2 yr)",
"Individual Producer (Yearly)",
"Student Membership (Yearly)" ))
Я ожидаю, что смогу добавить второй столбец, по крайней мере, с грубым набором возможных значений для члена членства с str_extract
:
library(stringr)
example$term <- example$membership %>%
str_extract(c("Period Paid: 1","Period Paid: 2","Yearly", "2 yr"))
Но это только ловит половину значений, и я не могу найти образец в том, что он пропускает.
1 Legacy Payment ID #3564, Payment Record #0, Period Paid: 1 Flag: N Period Paid: 1
2 Legacy Payment ID #3611, Payment Record #0, Period Paid: 2 Flag: N Period Paid: 2
3 Legacy Payment ID #4105, Payment Record #0, Period Paid: 1 Flag: G NA
4 Legacy Payment ID #4136, Payment Record #0, Period Paid: 1 Flag: N NA
5 Legacy Payment ID #5191, Payment Record #0, Period Paid: 1 Flag: N Period Paid: 1
6 Legacy Payment ID #5238, Payment Record #0, Period Paid: 1 Flag: N NA
7 Legacy Payment ID #5287, Payment Record #0, Period Paid: 1 Flag: N NA
8 Legacy Payment ID #5306, Payment Record #0, Period Paid: 1 Flag: N NA
9 Legacy Payment ID #5739, Payment Record #0, Period Paid: 2 Flag: G NA
10 Individual (2 yr) NA
11 Individual Producer (Yearly) Yearly
12 Student Membership (Yearly) NA
Единственная разница между строкой 4 и строкой 5 - это идентификатор платежа. Почему он находит только значение для поиска в строке 5?
И как мне это исправить. Но в основном почему?