2016-12-09 5 views
0

ich eine Spalte in einem Datenrahmen haben, wo einige Werte wie dieseentfernen r Zeichen vor Platz in einem String

Col1 
    Y 183.21 
    500.23 

    432.89 
    Y 428.29 


    Y500 

ich nach einem Weg suchen nur die Y vor diesen Strings zu entfernen, die Y und einige Zeichen getrennt durch ein Leerzeichen (Y 183.21, Y 428.29). Nicht das Y, das nicht durch das Leerzeichen getrennt ist (Y500), sondern nur Ys, die durch das Leerzeichen getrennt sind (Y 183.21, Y 428.29). Die erwartete Ausgabe wäre

Col1 
    183.21 
    500.23 

    432.89 
    428.29 


    Y500 

ich einige examples aber erfolglos versucht. Jeder Rat oder Tipps sind sehr geschätzt.

+0

Es sieht unter der Annahme, wie Sie zwei Variablen in einem. Ich würde die 'Y's in eine neue Spalte (vielleicht' grepl ('Y \\ d', df $ Col1) ') extrahieren und mit' readr :: parse_number (df $ Col1) 'zu einer tatsächlichen Zahl analysieren . Oder Sie könnten mit 'tidyr :: separate' und Lookarounds kreativ werden. – alistaire

Antwort

2

Wir können Paket verwenden stringi

library(stringi) 

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

Große Verwendung von 'stri_replace_all' Plus eins – akrun

1

Wir sub verwenden können Sie nur ein Spiel

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

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