2013-10-11 41 views
9

Tôi là một người mới bắt đầu với R. Bây giờ, tôi có một vector trong một data.frame như thế nàyLấy chuỗi trước dấu phẩy với 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, 

Tôi muốn để làm sạch nó. Những gì tôi muốn là tất cả các tên thành phố trước dấu phẩy. Làm thế nào tôi có thể nhận được kết quả trong R? Cảm ơn!

Trả lời

11

Bạn có thể sử dụng gsub với một chút regexp:

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

một này làm việc, quá:

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

+1 tôi sắp đề nghị gần như giống hệt nhau ... 'gsub ("^ (+) ,. * "," \\ 1 ", df $ city)' –

2

Bạn có thể sử dụng regexpr để tìm vị trí của dấu phẩy đầu tiên trong mỗi phần tử và sử dụng substr để chụp ảnh chúng tại đây:

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

substr(x,1,regexpr(",",x)-1) 
[1] "London" "Paris" "New York" 
4

Just for fun, bạn có thể sử dụng strsplit

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

này hoạt động cũng như:.

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

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

## > beg2char(x, ",") 
## [1] "London" "Paris" "New York" 
Các vấn đề liên quan