Get the strings before the comma with R

32,328

Solution 1

You can use gsub with a bit of regexp :

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

This one works, too :

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

Solution 2

Just for fun, you can use strsplit

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

Solution 3

You could use regexpr to find the position of the first comma in each element and use substr to snip them at this:

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

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

Solution 4

This works as well:

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

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

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

Solution 5

If the this was a column in a dataframe, we can use 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
Share:
32,328
user2855907
Author by

user2855907

Updated on September 25, 2022

Comments

  • user2855907
    user2855907 over 1 year

    I am a beginner with R. Now, I have a vector in a data.frame like this

    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,
    

    I want to clean it. What I want is all the city names before the comma. How can I get the result in R? Thanks!