在指定字符之前查找字符

find character before specified character

我想用gsub减去字符。

# data
Column name
NORTH HANOVER TWP N J
MULLICA TWP NJ
VERONA N J

我想要的是:

# result
Column name
NORTH HANOVER
MULLICA
VERONA

我尝试这样的事情:

gsub(" TWP.", "", "NORTH HANOVER TWP N J")
[1] "NORTH HANOVERN J"

我得到了错误的结果。
我该如何修复我的代码?

能否请您尝试以下操作(考虑到您的实际输入与所示示例相同)。

gsub(" TWP.*| N.*","",cal)

输出如下。

[1] "NORTH HANOVER" "NORTH HANOVER" "MULLICA"       "VERONA" 

其中数据如下

cal <- data.frame(column_name=c("NORTH HANOVER","NORTH HANOVER TWP N J","MULLICA TWP NJ","VERONA N J"))

更通用的模式(不是说它 100% 失败证明)

cal <- c("NORTH HANOVER TWP N J","MULLICA TWP NJ","VERONA N J","Sierra Nevada TWP NJ")

gsub("\sTWP\s?N\s?J.*|\sN\s?J.*","",cal)

#[1] "NORTH HANOVER" "MULLICA"       "VERONA"        "Sierra Nevada"

因为标记的答案会失败。​​