suppression de lignes sous conditions

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Anais Payen
Messages : 29
Enregistré le : 25 Fév 2019, 08:50

Re: suppression de lignes sous conditions

Messagepar Anais Payen » 14 Mar 2019, 15:28

Pierre-Yves Berrard a écrit :
INC_homeo renvoie les lignes satisfaisant la condition donc :

Code : Tout sélectionner

INC_sanshomeo <- INC[-INC_homeo, ]
(comme ce sont des entiers, bien utiliser le signe "moins" pour supprimer les lignes et pas l'opérateur logique de négation "!"


Effectivement cela fonctionne parfaitement!

Remarque très importante si vous utilisez grep : votre code va détecter les lignes qui contiennent 34003 n'importe où dans la chaîne (pas seulement au début). Remplacer "34003" par "^34003" pour indiquer que la chaîne à rechercher se trouve au début.


Il est vrai que j'avais lu ce matin qu'il y avait des caractères à utiliser pour sélectionner des endroits dans les chaines de caractères! J'ai donc modifié ma formule!
Mais dans ce cas, pourquoi vous ne mettez pas de ^ dans votre formule avec le substr?


je vous remercie pour toutes vos réponses!

Passez une belle journée

Pierre-Yves Berrard
Messages : 622
Enregistré le : 12 Jan 2016, 23:30

Re: suppression de lignes sous conditions

Messagepar Pierre-Yves Berrard » 14 Mar 2019, 15:43

Anais Payen a écrit :Mais dans ce cas, pourquoi vous ne mettez pas de ^ dans votre formule avec le substr?

Ça fonctionne différemment.
grep utilise une expression régulière (motifs de chaînes de caractère) tandis qu'avec substr on spécifie le caractère de début et le caractère de fin (donc on est bien sûr de détecter "35003" en début de chaîne)
PY

Anais Payen
Messages : 29
Enregistré le : 25 Fév 2019, 08:50

Re: suppression de lignes sous conditions

Messagepar Anais Payen » 14 Mar 2019, 15:47

Pierre-Yves Berrard a écrit :Ça fonctionne différemment.
grep utilise une expression régulière (motifs de chaînes de caractère) tandis qu'avec substr on spécifie le caractère de début et le caractère de fin (donc on est bien sûr de détecter "35003" en début de chaîne)


Super! Merci encore

Anais Payen
Messages : 29
Enregistré le : 25 Fév 2019, 08:50

Re: suppression de lignes sous conditions

Messagepar Anais Payen » 14 Mar 2019, 17:22

Une dernière question, maintenant que j'ai exclu les 34003, je souhaiterai exclure les codes qui ne contiennent pas 13 chiffres, dans mon fichier csv ils étaient indiqués par 0000092354732, mais il semblerait que R supprime les 0 devant,

je pensais utiliser votre fonction en notant :

Code : Tout sélectionner

INC_sansTAA <- INC_sanshomeo[substr(INC_sanshomeo$drug_source_value, 1, 5) != "00000", ]


Mais comme les 0 on disparu...

Code : Tout sélectionner

     drug_source_value count
1                    0 15838
11       3400932149544  1779
12       3400933591731  1716
18             9238619  1448
25       3400509099012  1143
44             9048669   733
47       3400892697789   708
54             9260010   655
59             9225976   606
65             9238648   559
70             9274762   519


Auriez vous une idée?

Par avance, je vous remercie

Pierre-Yves Berrard
Messages : 622
Enregistré le : 12 Jan 2016, 23:30

Re: suppression de lignes sous conditions

Messagepar Pierre-Yves Berrard » 14 Mar 2019, 17:25

Il y a manifestement eu une conversion en numérique lorsque vous avez importé les données dans R.
Quelles commandes avez-vous utilisé (read.csv...) ?
PY

Anais Payen
Messages : 29
Enregistré le : 25 Fév 2019, 08:50

Re: suppression de lignes sous conditions

Messagepar Anais Payen » 14 Mar 2019, 17:29

Pierre-Yves Berrard a écrit :Il y a manifestement eu une conversion en numérique lorsque vous avez importé les données dans R.
Quelles commandes avez-vous utilisé (read.csv...) ?


Oui oui tout à fait : voici le script :

INC <- read.csv("export_med_sans_atc_2019_02_13.csv",header = TRUE, sep=";")

Pierre-Yves Berrard
Messages : 622
Enregistré le : 12 Jan 2016, 23:30

Re: suppression de lignes sous conditions

Messagepar Pierre-Yves Berrard » 14 Mar 2019, 17:46

Utiliser le paramètre colClasses. Par exemple

Code : Tout sélectionner

colClasses = c("character", "integer")
pour la première colonne en caractère et la deuxième en nombre entiers.
PY

Anais Payen
Messages : 29
Enregistré le : 25 Fév 2019, 08:50

Re: suppression de lignes sous conditions

Messagepar Anais Payen » 15 Mar 2019, 08:53

Pierre-Yves Berrard a écrit :Utiliser le paramètre colClasses. Par exemple

Code : Tout sélectionner

colClasses = c("character", "integer")
pour la première colonne en caractère et la deuxième en nombre entiers.



Une fois de plus vous avez résolu mon problème! Je vous remercie


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité