Bonjour,
Mon script est rudimentaire et a seumlement pour objectif de vous suggérer une solution à améliorer. Comme je l'ai indiqué, le filtrage est basique:
Code : Tout sélectionner
z <- gsub('\\(','',z)
z <- gsub('\\)','',z)
z <- z[nchar(z)>3]
Les 2 premières lignes éliminenet les parenthèses (il faudrait faire de même pour les crochets).
La 3ème élimine les mots de longueur 1 à 3 (les conjonctions "and", "or", les nombres isolés... c'est pour ça que "oil" est éliminé.
Pour conserver ces mots, il suffit de modifier la condition ou de la supprimer.
Par aileurs il existe beaucoup de possibilités d'amélioration, par exemple il ne serait pas très compliqué d'éliminer systématiquement les chiffres ou d'établir une table de tous les mots à éliminer ou au contraire des mots à conserver, et de l'utiliser pour le filtrage.
Par exemple voici les 10 premières lignes de votre nouveau fichier :
Code : Tout sélectionner
df <- structure(list(Interventions.PR = c("Combination Product: DMARD´s and multidisciplinary treatment",
"Biobank creation and Pharmacogenetic analysis", NA, NA, NA,
"blood sample synovial tissue", " VAY736 VAY736 placebo", "Dextromethorphan hydrobromide",
" Protein Carbohydrate (Placebo) Resistance Exercise Program",
" ABBV-257 Placebo"), Interventions.SpA = c("Jitongning tablet Jitongning tablet,Jitongning tablet placebo Jitongning tablet placebo",
"Tofacitinib", "Video coaching exercises Routine exercises",
"Brodalumab 210 mg Placebo", " Adalimumab Non-steroidal Anti-inflammatory Drugs (NSAIDs)",
"Ixekizumab Placebo", "KHK4827 Placebo", " anti drug antibodies dosage",
"Adalimumab Placebo", " AIN457 AIN457 Placebo"), Interventions.LS = c("Dihydroartemisinin tablet Placebo tablet",
"MT-1303 Low dose MT-1303 High dose", " Hiomega-3 supplement of Naturalis® company -",
"Placebo ACT-334441", "\"Walk With Ease\"", "Ramipril", "AMG 592 Placebo",
" Anifrolumab Placebo", " Anifrolumab Placebo", " Psychotherapy"
), Interventions.ScS = c("Belimumab Rituximab Placebo Subcutaneous Injection Placebo Infusion MMF",
"Nilotinib (Tasigna)", "Belimumab", "Prednisolone 5 mg Placebo oral capsule",
"paquinimod", " Home-care rehabilitation group (HCRG)", " injection of autologous stromal vascular fraction",
"Imatinib Mesylate", "Magnetic resonance Imaging", "Rituximab Placebo (NaCl)"
), Interventions.SGS = c(" Biohorizons Laser-lok bonelevel dental implants",
" Iguratimod", " Parsaclisib", " UCB5857 Placebo", " aerobic exercise",
" Cyclosporine A", " VAY736 Placebo", " Orencia Placebo",
" CFZ533 active", " FMP-30")), .Names = c("Interventions.PR",
"Interventions.SpA", "Interventions.LS", "Interventions.ScS",
"Interventions.SGS"), row.names = c(NA, 10L), class = "data.frame")
... et voici le résultat obtenu en supprimant la 3ème ligne du test :
Code : Tout sélectionner
> df3
mot col1 col2 col3 col4 col5 sum
1 1 1 1 1 1 5
12 exercise 1 0 0 0 1 2
16 placebo 1 1 1 1 1 5
25 vay736 1 0 0 0 1 2
41 mg 0 1 0 1 0 2
45 tablet 0 1 1 0 0 2
64 of 0 0 1 1 0 2