如何排除字母数字变量中的数字(有'/')
How to exclude numbers (which have '/') in alphanumeric variable
我正在纠结如何删除带有“/”的数字后的所有内容,例如,我有以下向量
x <-c("Rua 12 de outubro", "Outubro 1/900", "Rua A 4/2 outracoisa", "Rua a 2")
我想获得
x <-c("Rua 12 de outubro", "Outubro", "Rua A", "Rua a 2")
即排除带“/”的数字及其后的每个数字。
我尝试使用 gsub
但没有成功。我该怎么做?
假设字符串中只有一个“/”:
x <-c("Rua 12 de outubro", "Outubro 1/900", "Rua A 4/2 outracoisa", "Rua a 2")
sub("(.*) \d+/\d+.*", '\1', x)
#[1] "Rua 12 de outubro" "Outubro" "Rua A" "Rua a 2"
使用sub
进行替换并将字符串分成两个捕获组(...)
:一个在您要保留的/
字符之前,一个在您想要保留的字符之后想丢弃。然后用 \1
返回第一个捕获组并用该组替换整个字符串:
sub("(.+)(/.+)", "\1", x)
[1] "Rua 12 de outubro" "Outubro 1" "Rua A 4" "Rua a 2"
或者,您可以通过否定字符 class [^/]+
定义第一个捕获组,它允许任何字符出现一次或多次 除了 /
字符:
sub("([^/]+)(/.+)", "\1", x)
我正在纠结如何删除带有“/”的数字后的所有内容,例如,我有以下向量
x <-c("Rua 12 de outubro", "Outubro 1/900", "Rua A 4/2 outracoisa", "Rua a 2")
我想获得
x <-c("Rua 12 de outubro", "Outubro", "Rua A", "Rua a 2")
即排除带“/”的数字及其后的每个数字。
我尝试使用 gsub
但没有成功。我该怎么做?
假设字符串中只有一个“/”:
x <-c("Rua 12 de outubro", "Outubro 1/900", "Rua A 4/2 outracoisa", "Rua a 2")
sub("(.*) \d+/\d+.*", '\1', x)
#[1] "Rua 12 de outubro" "Outubro" "Rua A" "Rua a 2"
使用sub
进行替换并将字符串分成两个捕获组(...)
:一个在您要保留的/
字符之前,一个在您想要保留的字符之后想丢弃。然后用 \1
返回第一个捕获组并用该组替换整个字符串:
sub("(.+)(/.+)", "\1", x)
[1] "Rua 12 de outubro" "Outubro 1" "Rua A 4" "Rua a 2"
或者,您可以通过否定字符 class [^/]+
定义第一个捕获组,它允许任何字符出现一次或多次 除了 /
字符:
sub("([^/]+)(/.+)", "\1", x)