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 caractères hexadéciamaux avec gsub


Sujet :

R

  1. #1
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut Remplacement de caractères hexadéciamaux avec gsub
    J'ai un fichier texte classique, où chaque caractère est codé sur 1 octet en code ASCII.
    Certains de ces caractères ne sont pas des lettres ou des chiffres, mêmes accentués. En revanche ils ont bien sur une valeur hexadécimale.
    Comment faire alors pour remplacer ces caractères par d'autres (qui peuvent aussi ne pas être des caractères identifiés) à l'aide de la fonction gsub().

    Je souhaiterais écrire quelque chose qui ressemblerait à gsub("AB","CD",Texte) dans lequel AB représentent le code hexadécimal (ASCII) d'un caractère, et CD le code hexadécimal d'un autre caractère ?

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour.
    La fonction gtools::char prend un code ASCII et renvoie le caractère associé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    > gtools::chr(65:90)
     [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T"
    [21] "U" "V" "W" "X" "Y" "Z"
    Si tu as plusieurs caractères à remplacer, plutôt que de multiplier les gsub, tu peux essayer str_replace_all du package {stringr} qui accepte des vecteurs de caractères à remplacer et des vecteurs de caractères de remplacement.
    Bon courage.
    Olivier

  3. #3
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut
    Merci Olivier,

    Il y a effectivement d'autres solutions, mais je souhaitais savoir si gsub() permettait de faire ce genre de choses.
    Merci en tout cas

Discussions similaires

  1. [RegEx] Remplacer des caractères spéciaux avec preg_replace
    Par coretin dans le forum Langage
    Réponses: 2
    Dernier message: 12/06/2017, 15h06
  2. Remplacer les caractères spéciaux avec SAS
    Par tassia dans le forum Débutez
    Réponses: 10
    Dernier message: 13/01/2015, 17h09
  3. Remplacer des caractères avec la fonction string.replace
    Par chtom dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/12/2008, 16h43
  4. Remplacement de caractères avec un requête
    Par noirot dans le forum Développement
    Réponses: 3
    Dernier message: 26/09/2008, 09h54
  5. Soucis avec le remplacement de caractères spéciaux
    Par Oluha dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/07/2005, 11h42

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