web-dev-qa-db-ja.com

Rでコンマの前の文字列を取得します

私は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で結果を取得するにはどうすればよいですか?ありがとう!

14
user2855907

gsubを少しの正規表現で使用できます。

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

これも機能します:

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

楽しみのために、strsplitを使用できます

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

regexprを使用して各要素の最初のコンマの位置を見つけ、substrを使用して次の場所でそれらを切り取ることができます。

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

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

これも同様に機能します。

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

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

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

これがデータフレームの列である場合は、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
0
Jeereddy