正如标题所说,
这里有一些数据
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
答案 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"