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