Je rencontre actuellement un problème que je n'arrive pas à solutionner.
J'ai un df de cette forme :
Code : Tout sélectionner
classe_atc code_atc nb_cp_pb chron_autre_2
<chr> <chr> <chr> <int>
1 ACETYLLEUCINE N07CA04 90 2
2 ACETYLSALICYLIQUE ACIDE B01AC06 30 2
3 AMOXICILLINE J01CA04 12 -1
4 AUTRES MEDICAMENTS POUR LES TROUBLES DE L'ACIDITE A02X 30 2
5 BETAMETHASONE H02AB01 20 2
6 BUDESONIDE R03BA02 NA-40-4 4
7 CALCIUM EN ASSOCIATION AVEC VITAMINE D ET/OU AUTRES MEDICAMENTS A12AX 30 2
8 CHLORHEXIDINE EN ASSOCIATION D08AC52 NA -1
9 CLARITHROMYCINE J01FA09 10 2
10 COLECALCIFEROL A11CC05 NA -1
11 GADOBUTROL V08CA09 NA -1
12 GLICLAZIDE A10BB09 30 2
13 HELICIDINE R05DB NA -1
14 HOMEOPATHIE WHOMEO 1 -1
15 IRBESARTAN C09CA04 30 2
16 LEVODOPA ET INHIBITEUR DE LA DECARBOXYLASE N04BA02 60 1
17 LEVOTHYROXINE SODIQUE H03AA01 30 2
18 LORATADINE R06AX13 15 2
19 OXOMEMAZINE R06AD08 NA -1
20 PARACETAMOL N02BE01 8 1
et je souhaiterai que lorsque dans ma colonne nb_cp_pb il y a 84 ou 90, ce soit détecté même si c'est écrit sous la forme "NA-90" ou "28-8-84"
J'ai donc utilisé regexpr :
Code : Tout sélectionner
df$chron_autre_2 <- regexpr(pattern="[84-90]", text = as.character(df$nb_cp_pb))
Je pensais que cela me permettait de chercher tous les chiffres compris entre 84 et 90, car je ne voulais pas faire 2 lignes de codes. Mais il semblerait que cela ne soit pas le cas! en effet, il me met -1 lorsque le critère n'est pas rempli, mais je ne comprends pas pourquoi j'ai des scores positifs même là ou il n'y a pas la bonne réponse
Quelqu'un aurait-il une idée pour me faire avancer?
Merci d'avance !
Bonne journée