我有一个参差不齐的地名列表,例如
place
District1 / Commune2 / Village3
Region1 / District2
District3 / Commune1 / Village1 / Farm1
所以我们在不同的分辨率级别都有地名。我想提取用于地理编码目的的姓氏,例如
place
Village3
District2
Farm1
有人可以给我看一个正则表达式,搜索最后一个“/”然后只保留地名吗?非常感谢。令我困惑的是R正则表达式查询中的转义字符。
答案 0 :(得分:2)
将所有".*"
替换为包含最后一个斜杠和空格"/ "
的空字符串:
gsub(".*/ ", "", DF$place)
## [1] "Village3" "District2" "Farm1"
可重复形式的输入是:
Lines <- "
place
District1 / Commune2 / Village3
Region1 / District2
District3 / Commune1 / Village1 / Farm1"
DF <- read.table(text = Lines, header = TRUE, as.is = TRUE, sep = ";")
答案 1 :(得分:1)
这也有效:
trimws(basename(df$place))