Je suis assez newbe dans R, j'ai un problème sur lequel je butte depuis plusieurs semaines. Je pense ne pas l'aborder sous le bon angle à cause de ma mauvaise connaissance de R et de sa philosophie.
J'ai commencé a le "couper" en problèmes plus petit mais voici où je coince :
--
Le contexte : J'ai un dataframe dont je ne contrôle pas la génération (il s'agit d'un fichier tableur issue d'une requête BO sur une base de données hospitalière.
La structure de ce dataframe est comme ci-dessous :
-----
Code : Tout sélectionner
df <- structure(list(DRM = c(2000222L, 2000222L, 2000255L, 2000310L,
2000310L, 2000504L, 2000666L, 2000666L, 2000666L, 2000300L, 2000800L,
2000805L, 2000805L, 2000812L, 2000812L), NOM = c("Patient_1",
"Patient_1", "Patient_2", "Patient_3", "Patient_4", "Patient_5",
"Patient_6", "Patient_6", "Patient_7", "Patient_8", "Patient_9",
"Patient_10", "Patient_10", "Patient_11", "Patient_11"), PRENOM = c("Mathieu",
"Mathieu", "Berthe", "Albert", "Fanny", "Eric", "Elise", "Elise",
"X", "Marc", "Mathieu", "Idriss", "Idriss", "Philippe", "Philippe"
), SEXE = c("M", "M", "F", "M", "F", "M", "F", "F", "M", "M",
"M", "M", "M", "M", "M"), AGE = c("65 A", "65 A", "88 A", "3 A",
"27 A", "25 A", NA, "33 A", "55 A", "75 A", "12 A", "32 A", "32 A",
"59 A", "59 A"), DEVENIR = c("URG2", "URG2", "MG1", "URG3", "URG3",
"URG3", "URG2", "URG2", "URG2", "URG2", "URG2", "URG3", "URG3",
"MG2", "MG2"), DECISION = c("VSAV1", "SMUR NANTES", "AP1", "VSAV1",
"VSAV2", "SOS", "VSAV3", "SMUR", "VSAV4", "VSAV5", "AP2", "CM",
"CM", "CM", "CM"), DEVENIR_PATIENT = c("LSP", "LSP", "URGENCE_ST_NAZ",
"URGENCE_NANTES", "URGENCE_NANTES", "LSP", "BLOC_PTMC", "BLOC_PTMC",
"DCD_LSP", "URGENCE_CTB", "URGENCE_PEDIATRIQUE_NANTES", "LSP",
"LSP", "PROPRE MOYEN", "PROPRE MOYEN"), HDR = c("Céphalées",
"Céphalées", "Douleur thoracique", "Trauma", "Trauma", "Psychiatrie",
"Polytrauma", "Polytrauma", "Polytrauma", "Dyspnée", NA, "Psychiatrie",
"Psychiatrie", "Urologie", "Urologie"), BILAN = c("Migraine",
"HSA", "Angoisse", "fracture bras", "TC sans PDC", NA, "TC grave",
"Fémur", "ACR", "Covid", NA, "Angoisse", NA, "Rétention Urine",
"Rétention Urine")), class = "data.frame", row.names = c(NA,
-15L))
-----
On a un numéro "DRM" (Dossier de Régulation Médicale) qui représente une intervention.
On voit qu'il y a des doublons, qui peuvent être "vrai"
Exemple ligne 14 et 15 ou toute la ligne est identique (Cas N°1)
Des lignes ou on a des doublons (même DRM et même patient) MAIS dont certaines colonnes sont différentes : exemple ligne 7 et 8 avec même patient mais DECISION différentes, et Bilan différent. (Cas N°2)
Enfin, dans un même DRM je peux avoir 2 patients différents (combiné aux cas N°2 aussi...)
Mon besoin :
Je veux éliminer les vrais doublon : cas N°1 ... ça j'ai trouvé avec la fonction Distinct de Dplyr.
Je voudrais pouvoir détecter les cas N°2 et récupérer les informations différentes (comme la ligne 7 et 8 colonne DECISION) dans une colonne que j'ajoute à la première ligne...
Exemple pour les ligne 7 et 8 : créer une colonne DECISION_1 contenant l'info de la ligne 7 (VSAV) et une colonne DECISION_2 contenant la DECISION de la ligne 8 (SMUR).
PUIS, effacer la ligne en trop ...(ici la 8)
Et bien entendu j'aimerais ne pas mélanger les lignes ayant même DRM mais pas le même patient... (cas N°3)...
Je vous remercie déjà d'avoir lu mon message jusqu'ici...
J'espère que c'est suffisamment clair et comprhéensible
En vous remerciant pour toute piste !
Philippe