Gsub用来识别第一个空格之前的字符串,只有数字

时间:2018-07-27 13:47:08

标签: r gsub

正如标题所说,

这里有一些数据

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爸爸。

我需要的是

   StreetName
    PO BOX 850
    Happy Lane

2 个答案:

答案 0 :(得分:1)

请您尝试以下。

val1 <- c("PO BOX 850", "555 Happy Lane")
val1
sub("^[0-9]+[[:space:]]+","",val1)

输出如下。

[1] "PO BOX 850" "Happy Lane"

这是作为矢量实现的,例如,您也可以将其用于数据帧的值。

答案 1 :(得分:1)

我建议使用

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"