supprimer ligne

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

charlier hervé
Messages : 10
Enregistré le : 17 Déc 2019, 10:46

supprimer ligne

Messagepar charlier hervé » 08 Fév 2020, 19:00

Je lis des donnees dans un fichier .csv
En fonction de ces données je dois supprimer les lignes contenant "F" dans la colonne "sex" du data.frame NewGHQFPRS
Je reconstitue le nom de la colonne du dataframe , mais il ne se passe rien
Si je tape la commande directement le result est correct mais je ne connais pas à priori l"action à faire[code]

[> nomcol <- df[ind]
> nomcol
[1] "sex"
> val <- df[ind1]
> val
[1] "F"
> NewName <- paste("NewGHQFPRS",nomcol,sep="$")
> NewName
[1] "NewGHQFPRS$sex"
> is.character(NewName)
[1] TRUE
> NewGHQFPRS <- NewGHQFPRS[!NewName==val,]
> #il ne s'est rien passé
> NewGHQFPRS <- NewGHQFPRS[!NewGHQFPRS$sex==val,]
> is.character(NewGHQFPRS$sex)
[1] FALSE
/code]

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: supprimer ligne

Messagepar Serge Rapenne » 09 Fév 2020, 00:08

Bonjour,

il y a plein de solutions pour faire ce genre de chose. En voici 3

avec la fonction subset :

Code : Tout sélectionner

df2<-subset(NewGHQFPRS,sex!="F")

ou bien

Code : Tout sélectionner

df2<-NewGHQFPRS[NewGHQFPRS$sex!="F",]

ou avec le package dplyr

Code : Tout sélectionner

library(dplyr)
df2<-NewGHQFPRS %>% filter(sex!="F")


Serge

charlier hervé
Messages : 10
Enregistré le : 17 Déc 2019, 10:46

Re: supprimer ligne

Messagepar charlier hervé » 09 Fév 2020, 16:02

Bonjour,
Merci pour la reponse mais cela ne resoud pas mon probleme.
En effet je ne connais le nom de la colonne qu'en lisant l'information dans un fichier
Comme indiqué dans votre proposition si je fais
df2<-subset(NewGHQFPRS,sex!="F") cela fonctionne mais je dois lire le nom de la colonne dans un fichier .csv ce qui revient à

...read.csv(........nomcol....val...)

puis df2<-subset(NewGHQFPRS,nomvcol!=val) ce qui ne fonctionne pas

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: supprimer ligne

Messagepar Serge Rapenne » 09 Fév 2020, 16:29

Je n'avais pas compris ton pb.

dans ce cas, tu peux faire simplement

Code : Tout sélectionner

df2<-NewGHQFPRS[NewGHQFPRS[,nomvcol]!="F",]


Serge

charlier hervé
Messages : 10
Enregistré le : 17 Déc 2019, 10:46

Re: supprimer ligne

Messagepar charlier hervé » 09 Fév 2020, 18:38

Merci bien
Tout fonctionne comme désiré
Encore merci


Retourner vers « Questions en cours »

Qui est en ligne

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

cron