2013-10-11 15 views
9

ich mit R. ein Anfänger bin Jetzt habe ich einen Vektor in einem data.frame wie dieseHolen Sie sich die Strings vor dem Komma mit R

city 
Kirkland, 
Bethesda, 
Wellington, 
La Jolla, 
Berkeley, 
Costa, Evie KW172NJ 
Miami, 
Plano, 
Sacramento, 
Middletown, 
Webster, 
Houston, 
Denver, 
Kirkland, 
Pinecrest, 
Tarzana, 
Boulder, 
Westfield, 
Fair Haven, 
Royal Palm Beach, Fl 
Westport, 
Encino, 
Oak Ridge, 

ich es reinigen möchten. Was ich will, sind alle Namen der Stadt vor dem Komma. Wie kann ich das Ergebnis in R bekommen? Vielen Dank!

Antwort

11

Sie gsub mit etwas regexp verwenden:

cities <- gsub("^(.*?),.*", "\\1", df$city) 

Dieser funktioniert auch:

cities <- gsub(",.*$", "", df$city) 
+0

+1 Ich wollte fast genau den gleichen ... 'gsub („^ (+) vorschlagen ,. * "," \\ 1 ", df $ Stadt)' –

2

Sie regexpr nutzen, um die Position des ersten Komma in jedem Element zu finden und Verwenden Sie substr, um sie an diesem zu schnippen:

4

Just for fun, können Sie strsplit

> x <- c("London, UK", "Paris, France", "New York, USA") 
> sapply(strsplit(x, ","), "[", 1) 
[1] "London" "Paris" "New York" 
2

Dies funktioniert auch benutzen.

x <- c("London, UK", "Paris, France", "New York, USA") 

library(qdap) 
beg2char(x, ",") 

## > beg2char(x, ",") 
## [1] "London" "Paris" "New York" 
Verwandte Themen