2017-06-28 6 views
0

Hier ist ein 1 Spaltendatenrahmen:auf Zeilenebene Transformations nicht Spalte Pegel während einer dplyr Kette

x <- c(" [CAD] TRAFF-S", "[CAD] SUSP-A ", " [CAD] CRASH", "[CAD] TRAFF-S ", "[CAD] PARKING") 
x <- data.frame(x) 
> x 
       x 
1 [CAD] TRAFF-S 
2 [CAD] SUSP-A 
3  [CAD] CRASH 
4 [CAD] TRAFF-S 
5 [CAD] PARKING 

Ich möchte das Leerzeichen abzustreifen und wurde an der Ordnung von der qdap Paket suchen.

Das Problem ist, dass die Eingabe für Trim() und andere Funktionen von Qdap ich einen Vektor nicht einen Datenrahmen verwenden möchte. Normalerweise wäre das in Ordnung, aufgrund der Vorverarbeitung könnte sich die Vektorlänge ändern und somit wird das erneute Anfügen meines vorverarbeiteten Vektors an das ursprüngliche df schwierig sein, da die Längen unterschiedlich sein werden.

In den Beispieldaten gibt es einige Leerzeichen.

Versuchen:

> dat.p <- x %>% Trim 
> dat.p 
[1] "c(2, 4, 1, 5, 3)" # I don't understand what this is doing 

Was ein geeigneter Weg ist, über jede Zeile in x innerhalb einer dplyr Kette zu durchlaufen? Oder anders ausgedrückt, gibt es einen "dypryr esque" Weg, dies zu tun? Ich möchte, dass die Variable x das gleiche Format hat, eine 1 Spalte df mit derselben Anzahl von Zeilen und Spalten am Ende der Transformation.

Antwort

0

Sie müssen mutate die Spalte x, und Sie können die timws Funktion von base R verwenden:

library(dplyr) 

dat.p <- x %>% 
    mutate(x = trimws(x, 'both')) 

dat.p 
#    x 
# 1 [CAD] TRAFF-S 
# 2 [CAD] SUSP-A 
# 3 [CAD] CRASH 
# 4 [CAD] TRAFF-S 
# 5 [CAD] PARKING 
Verwandte Themen