IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Remplacement de NA par un caractere de la meme ligne


Sujet :

R

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2020
    Messages : 16
    Points : 15
    Points
    15
    Par défaut Remplacement de NA par un caractere de la meme ligne
    Bonjour à tous,
    Je souhaiterais remplacer les données manquantes de mon dataframe par la valeur d'une autre colonne à la meme ligne que la données manquante.
    Voici un exemple pour mieux comprendre avec mon dataframe de départ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    df <- data.frame(old=c('oldname1','oldname2','oldname3','oldname4'), new = c('newname1','newname2',NA,'newname4'))
    et mon dataframe espéré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    df <- data.frame(old=c('oldname1','oldname2','oldname3','oldname4'), new = c('newname1','newname2','oldname3','newname4'))
    En utilisant la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    df$new[is.na(df$new)] <- df$old
    j'ai le NA qui est remplacé la premiere valeur de la colonne 'old' et non pas par la valeur de la colonne 'old' à la meme ligne.
    j'obtiens cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
           old      new
    1 oldname1 newname1
    2 oldname2 newname2
    3 oldname3 oldname1
    4 oldname4 newname4
    Avez vous une astuce pour m'aider svp ?
    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 476
    Points : 831
    Points
    831
    Par défaut
    bonjour, avec la fonction replace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    df2 <- replace(df$new,which(is.na(df$new)),df$old[which(is.na(df$new))])
    bon week-end

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2020
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Bonjour Xavier Pierre, c'est exactement ça, merci beaucoup !
    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/02/2015, 09h34
  2. Remplacer par un caractere special par macro
    Par lraynal dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/06/2009, 16h39
  3. remplacer les occurences d'un caractere dans une chaine par un autre
    Par lity7 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 14/03/2008, 12h02
  4. Réponses: 34
    Dernier message: 08/03/2007, 14h51
  5. Remplacer plusieurs colonnes par un 'alias'
    Par zestrellita dans le forum Langage SQL
    Réponses: 7
    Dernier message: 22/04/2004, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo