Ответ 1
Вы можете использовать gsub
с небольшим количеством регулярных выражений:
cities <- gsub("^(.*?),.*", "\\1", df$city)
Это тоже работает:
cities <- gsub(",.*$", "", df$city)
Я начинаю с R. Теперь у меня есть вектор в data.frame, как этот
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? Спасибо!
Вы можете использовать gsub
с небольшим количеством регулярных выражений:
cities <- gsub("^(.*?),.*", "\\1", df$city)
Это тоже работает:
cities <- gsub(",.*$", "", df$city)
Просто для удовольствия вы можете использовать strsplit
> x <- c("London, UK", "Paris, France", "New York, USA")
> sapply(strsplit(x, ","), "[", 1)
[1] "London" "Paris" "New York"
Вы можете использовать regexpr
, чтобы найти позицию первой запятой в каждом элементе и использовать substr
, чтобы обрезать их следующим образом:
x <- c("London, UK", "Paris, France", "New York, USA")
substr(x,1,regexpr(",",x)-1)
[1] "London" "Paris" "New York"
Это также работает:
x <- c("London, UK", "Paris, France", "New York, USA")
library(qdap)
beg2char(x, ",")
## > beg2char(x, ",")
## [1] "London" "Paris" "New York"
Если это был столбец в кадре данных, мы можем использовать tidyverse.
library(dplyr)
x <- c("London, UK", "Paris, France", "New York, USA")
x <- as.data.frame(x)
x %>% separate(x, c("A","B"), sep = ',')
A B
1 London UK
2 Paris France
3 New York USA