2015-03-11 10 views
5

Ich möchte die Werte einer Spalte meines data.frame kürzen. Im Moment besteht jeder Wert vieler Briefe, wieR: Wie verkürzen Datenrahmen Werte zu ersten Zeichen

df$col1 
[1] AHG ALK OPH BCZ LKH QRQ AAA VYY 

was ich brauche nur der erste Buchstabe ist:

df$col1 
[1] A A O B L Q A V 

ich andere Einträge gelesen haben, die vorgeschlagen gsub zu verwenden, stri_replace_all_charclass oder strsplit . Aber ich fürchte, ich brauche Hilfe, um dies umzusetzen.

+1

'substr ("AHG" , 1, 1) ' – Roland

+2

' strtrim (x, width) ' – rmuc8

Antwort

6

Sie können strtrim

df$col1 <- strtrim(df$col1, 1) 
+2

Ich wusste nicht über diese Funktion. Ich benutze eine ähnliche Funktion 'str_trim' von' stringr' zum Entfernen von Leerraum. Vielen Dank für die Freigabe dieser Option – akrun

+0

Was ist, wenn wir rückwärts trimmen müssen? –

3

Das stringr Paket ist groß:

require(stringr) 

df <- data.frame(col1 = c("AHG", "ALK", "OPH", "BCZ", "LKH", "QRQ", "AAA", "VYY")) 

str_sub(df$col1, 1, 1) 

[1] "A" "A" "O" "B" "L" "Q" "A" "V" 
+2

Warum brauchen Sie ein Paket hier? Die Syntax ist genau so wie für die Basisfunktion 'substr'. – Roland

1

Was Sie brauchen, ist die Teilfunktion:

df$col1 <- substr(df$col1, 1, 1) 
1

ich mit Robin zustimmen. mit der Funktion substr oder substring wird direkt den Trick tun, ohne ein Paket zu installieren.

df$col1 <- substr(df$col1, 1, 1) 

oder df $ col1 < - substring (df $ col1,1,1)

Verwendung Syntax substr (Zielvektor, Platz starten, stoppen Ort)

Verwandte Themen