2013-10-11 4 views
9

Я новичок с R. Теперь у меня есть вектор в data.frame как этотПолучить строки до запятой с 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, 

Я хочу, чтобы очистить его. Я хочу, чтобы все названия городов были запятыми. Как я могу получить результат в R? Благодаря!

ответ

11

Вы можете использовать gsub с небольшим количеством регулярных выражений:

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

Это один работает, тоже:

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

+1 Я собирался предложить почти точно такой же ... 'GSUB («^ (+) ,. * "," \\ 1 ", df $ city)' –

2

Вы можете использовать regexpr, чтобы найти положение первой запятой в каждом элементе и используйте substr, чтобы отрезать их следующим образом:

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

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

Просто для удовольствия, вы можете использовать strsplit

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

Это работает так:.

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

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

## > beg2char(x, ",") 
## [1] "London" "Paris" "New York" 
Смежные вопросы