2016-12-09 1 views
0

J'ai une colonne dans une trame de données où certaines valeurs sont comme çar supprimer le caractère avant l'espace dans une chaîne

Col1 
    Y 183.21 
    500.23 

    432.89 
    Y 428.29 


    Y500 

Je cherche un moyen de supprimer uniquement les Y avant les chaînes qui ont Y et certains caractères séparés par un espace (Y 183.21, Y 428.29). Ce n'est pas le Y qui n'est pas séparé par l'espace (Y500) mais seulement Y qui sont séparés par l'espace (Y 183.21, Y 428.29). Le résultat attendu serait

Col1 
    183.21 
    500.23 

    432.89 
    428.29 


    Y500 

J'ai essayé une examples, mais sans succès. Tous les conseils ou astuces sont très appréciés.

+0

Il semble que vous avez deux variables dans un. Je voudrais extraire les 'Y's dans une nouvelle colonne (peut-être' grepl ('Y \\ d', df $ Col1) '), et analyser un nombre réel avec' readr :: parse_number (df $ Col1) ' . Ou vous pourriez être créatif avec 'tidyr :: séparé' et les lookarounds. – alistaire

Répondre

2

Nous pouvons utiliser package stringi

library(stringi) 

new.df<-stri_replace_all(df,"" ,fixed = "Y ") 
+1

Grande utilisation de 'stri_replace_all' Plus un – akrun

1

Nous pouvons utiliser sub en supposant que vous avez seulement un match

sub("Y ", "", df$Col1) 

#[1] "183.21" "500.23" "432.89" "428.29" "Y500"