15

私は何かをしようとしていますが、答えを覚えていない/見つけることができません。私は国勢調査局からの都市名のリストを持っていますが、彼らは私のmatch().

私はこれを作りたいです:

Middletown Township
Sunny Valley Borough
Hillside Village

これに:

Middletown
Sunny Valley
Hillside

助言がありますか?lastIndexOf()理想的には、R に関数があるかどうかも知りたいです。

ここに出力があります:

> dput(df1)
structure(list(id = c(1, 2, 3), city = structure(c(2L, 3L, 1L
), .Label = c("Hillside Village", "Middletown Township", "Sunny Valley Borough"
), class = "factor")), .Names = c("id", "city"), row.names = c(NA, 
-3L), class = "data.frame")
4

3 に答える 3

22

これは機能します:

gsub("\\s*\\w*$", "", df1$city)
[1] "Middletown"   "Sunny Valley" "Hillside"   

1つ以上のスペース文字、任意の数の「単語」文字(スペース、数字、またはアンダースコア)、文字列の終わりで構成される部分文字列を削除します。

于 2012-10-26T20:28:04.000 に答える
18

これがあなたが必要とすることをする正規表現です:

sub(df1$city, pattern = " [[:alpha:]]*$", replacement = "")

[1]「ミドルタウン」「サニーバレー」「ヒルサイド」

これは、スペースで始まり、文字列の最後まで文字のみが含まれる部分文字列を空の文字列に置き換えることです。

于 2012-10-26T20:29:44.353 に答える