使用R获取逗号之前的字符串

时间:2013-10-11 14:42:15

标签: string r split extract

我是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中获得结果?谢谢!

5 个答案:

答案 0 :(得分:16)

你可以使用gsub和一点regexp:

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

这个也适用:

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

答案 1 :(得分:4)

只是为了好玩,您可以使用strsplit

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

答案 2 :(得分:2)

您可以使用regexpr查找每个元素中第一个逗号的位置,然后使用substr剪切它们:

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

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

答案 3 :(得分:2)

这也有效:

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

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

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

答案 4 :(得分:0)

如果这是数据框中的一列,我们可以使用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