Gsub 识别第一个空格之前的字符串,只有数字
Gsub to identify string before first whitespace, only numbers
正如标题所说,
这是一些数据
DF<- data.frame(StreetName=c("PO BOX 850", "555 Happy Lane"))
这是我的代码
DF$StreetName <- sub(".*? (.+)", "\1", DF$StreetName)
我也试过了
DF$StreetName<- sub("\d? (.+)", "\1", DF$StreetName)
但两者都在扼杀我的 PO BOX addys。
我需要的是
StreetName
PO BOX 850
Happy Lane
能否请您尝试以下。
val1 <- c("PO BOX 850", "555 Happy Lane")
val1
sub("^[0-9]+[[:space:]]+","",val1)
输出如下。
[1] "PO BOX 850" "Happy Lane"
作为一个例子,这被实现为一个向量,您也可以将它用于数据框的值。
我建议使用
sub("^\d+\s*", "", DF$StreetName)
模式匹配
^
- 字符串开头
\d+
- 1 个或多个数字
\s*
- 零个或多个空格。
请注意,如果您只想匹配数字和至少 1 个空格,则需要将 *
替换为 +
。
参见regex demo。
> DF<- data.frame(StreetName=c("PO BOX 850", "555 Happy Lane"))
> sub("^\d+\s*", "", DF$StreetName)
[1] "PO BOX 850" "Happy Lane"
正如标题所说,
这是一些数据
DF<- data.frame(StreetName=c("PO BOX 850", "555 Happy Lane"))
这是我的代码
DF$StreetName <- sub(".*? (.+)", "\1", DF$StreetName)
我也试过了
DF$StreetName<- sub("\d? (.+)", "\1", DF$StreetName)
但两者都在扼杀我的 PO BOX addys。
我需要的是
StreetName
PO BOX 850
Happy Lane
能否请您尝试以下。
val1 <- c("PO BOX 850", "555 Happy Lane")
val1
sub("^[0-9]+[[:space:]]+","",val1)
输出如下。
[1] "PO BOX 850" "Happy Lane"
作为一个例子,这被实现为一个向量,您也可以将它用于数据框的值。
我建议使用
sub("^\d+\s*", "", DF$StreetName)
模式匹配
^
- 字符串开头\d+
- 1 个或多个数字\s*
- 零个或多个空格。
请注意,如果您只想匹配数字和至少 1 个空格,则需要将 *
替换为 +
。
参见regex demo。
> DF<- data.frame(StreetName=c("PO BOX 850", "555 Happy Lane"))
> sub("^\d+\s*", "", DF$StreetName)
[1] "PO BOX 850" "Happy Lane"