Bonjour,
Une proposition avec le package stringr, voir aussi cette page.
> V0 <- "PO644420PO656002294pour2670024PA328PM645184MGPA381PM645125PSEPA1268PM645112MGPA2912PM645085MGPA1816PM645051MGPA1893PM645245MGPA334160PM645133MGPA588886PM645620MGPA590032PM645180MGPA2825PM645568MGPA333285PM645365MGPA590034PM645519MGPA706PM645268MGPA785PM645345MGPA2240PM645077MGPA267622PM645033MGPA268048PM645257MGPA590031PM645352MGPA333611PM645389MGPA332364PM645525MGPA335532PM645082MGPA335543PM645096MGPA331924PM645417MGPA335999PM645219MGPA356PM645358PA394PM645447PA543PM645064PA719PM645083PA765PM645138PA810PM645557PA840PM645617PA606040PM645144PA1116PM645530PA1155PM6452"
1) Découpage de la chaîne de caractères en utilisant le caractère "P" comme séparateur :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| > library(stringr)
> V1 <- unlist(str_split(V0,"P"))
> V1
[1] "" "O644420" "O656002294pour2670024" "A328" "M645184MG"
[6] "A381" "M645125" "SE" "A1268" "M645112MG"
[11] "A2912" "M645085MG" "A1816" "M645051MG" "A1893"
[16] "M645245MG" "A334160" "M645133MG" "A588886" "M645620MG"
[21] "A590032" "M645180MG" "A2825" "M645568MG" "A333285"
[26] "M645365MG" "A590034" "M645519MG" "A706" "M645268MG"
[31] "A785" "M645345MG" "A2240" "M645077MG" "A267622"
[36] "M645033MG" "A268048" "M645257MG" "A590031" "M645352MG"
[41] "A333611" "M645389MG" "A332364" "M645525MG" "A335532"
[46] "M645082MG" "A335543" "M645096MG" "A331924" "M645417MG"
[51] "A335999" "M645219MG" "A356" "M645358" "A394"
[56] "M645447" "A543" "M645064" "A719" "M645083"
[61] "A765" "M645138" "A810" "M645557" "A840"
[66] "M645617" "A606040" "M645144" "A1116" "M645530"
[71] "A1155" "M6452" |
2) Sélection des éléments commençant par "A" ou "M"
1 2 3 4 5 6 7 8
| > V2 <- V1[which(str_sub(V1[],1,1) %in% c("A","M"))]
> V2
[1] "A328" "M645184MG" "A381" "M645125" "A1268" "M645112MG" "A2912" "M645085MG" "A1816" "M645051MG" "A1893" "M645245MG"
[13] "A334160" "M645133MG" "A588886" "M645620MG" "A590032" "M645180MG" "A2825" "M645568MG" "A333285" "M645365MG" "A590034" "M645519MG"
[25] "A706" "M645268MG" "A785" "M645345MG" "A2240" "M645077MG" "A267622" "M645033MG" "A268048" "M645257MG" "A590031" "M645352MG"
[37] "A333611" "M645389MG" "A332364" "M645525MG" "A335532" "M645082MG" "A335543" "M645096MG" "A331924" "M645417MG" "A335999" "M645219MG"
[49] "A356" "M645358" "A394" "M645447" "A543" "M645064" "A719" "M645083" "A765" "M645138" "A810" "M645557"
[61] "A840" "M645617" "A606040" "M645144" "A1116" "M645530" "A1155" "M6452" |
3) Ajout du caractère "P" au début de chaque élément :
1 2 3 4 5 6 7 8 9
| > V3 <- str_c("P", V2[])
> V3
[1] "PA328" "PM645184MG" "PA381" "PM645125" "PA1268" "PM645112MG" "PA2912" "PM645085MG" "PA1816" "PM645051MG" "PA1893"
[12] "PM645245MG" "PA334160" "PM645133MG" "PA588886" "PM645620MG" "PA590032" "PM645180MG" "PA2825" "PM645568MG" "PA333285" "PM645365MG"
[23] "PA590034" "PM645519MG" "PA706" "PM645268MG" "PA785" "PM645345MG" "PA2240" "PM645077MG" "PA267622" "PM645033MG" "PA268048"
[34] "PM645257MG" "PA590031" "PM645352MG" "PA333611" "PM645389MG" "PA332364" "PM645525MG" "PA335532" "PM645082MG" "PA335543" "PM645096MG"
[45] "PA331924" "PM645417MG" "PA335999" "PM645219MG" "PA356" "PM645358" "PA394" "PM645447" "PA543" "PM645064" "PA719"
[56] "PM645083" "PA765" "PM645138" "PA810" "PM645557" "PA840" "PM645617" "PA606040" "PM645144" "PA1116" "PM645530"
[67] "PA1155" "PM6452" |
NB : Si vous avez beaucoup de variables à découper ainsi, il faudra prévoir le cas particulier où la chaîne initiale commence par le caractère "A" ou "M" et supprimer le premier élément.
Cordialement,
Partager