之前删除数字

时间:2016-02-04 15:22:21

标签: regex r numbers gsub

我有一个客户列表的数据集。类型因子的第一列(Kunden.Nr..Kurzname)在实际客户名称之前始终有一个数字(范围从1到4位数),我想删除。目前数据集如下所示:

    Kunden.Nr..Kurzname             Name..Vorname           Adresse              Postfach  PLZ
    1    1529 33ER TAXI AG              33er Taxi AG    Jägerstrasse 5                  <NA> 4016
    2      2384 4EYES GMBH                4eyes GmbH      Grubenweg 25                  <NA> 4153
    3 1548 A. SCHULMANN AG           A. Schulmann AG    Kernstrasse 10                  <NA> 8004
    4     3427 AAA DENT AG               AAA Dent AG  Die Zahnärzte.ch Centralbahnstrasse 20 4051
    5 555 AARE SEELAND MOB     Aare Seeland mobil AG   Hauptstrasse 93                  <NA> 2560
    6 856 AASTRA TELECOM S Aastra Telecom Schweiz AG Schulhausgasse 24                  <NA> 3113

我想这样:

    Kunden.Nr..Kurzname             Name..Vorname           Adresse              Postfach  PLZ
    1    33ER TAXI AG              33er Taxi AG    Jägerstrasse 5                  <NA> 4016
    2      4EYES GMBH                4eyes GmbH      Grubenweg 25                  <NA> 4153
    3 A. SCHULMANN AG           A. Schulmann AG    Kernstrasse 10                  <NA> 8004
    4     AAA DENT AG               AAA Dent AG  Die Zahnärzte.ch Centralbahnstrasse 20 4051
    5 AARE SEELAND MOB     Aare Seeland mobil AG   Hauptstrasse 93                  <NA> 2560
    6 AASTRA TELECOM S Aastra Telecom Schweiz AG Schulhausgasse 24                  <NA> 3113

基本上,我需要删除所有内容,包括第一个空格。弄清楚我可能不得不使用“gsub”,但遗憾的是我很久没有使用过R了。非常感谢帮助。

3 个答案:

答案 0 :(得分:1)

我想建议使用群组:

gsub("^(\\d+)([[:space:]])(.+)$","\\3",x)

例如:

> x <- c("1529 33ER TAXI AG", "2384 4EYES GMBH")
> gsub("^(\\d+)([[:space:]])(.+)$","\\3",x)
[1] "33ER TAXI AG" "4EYES GMBH" 

演示

说明

regex101.com提供。

How the match works

答案 1 :(得分:0)

之前的所有答案都有点过载。这是一个建议,有点直截了当,并且像你一样问过。

DF <- #your data.frame

FindFirstSpace <- regexpr(" ", DF$Kunden.Nr..Kurzname, fixed = TRUE)
DF$Kunden.Nr..Kurzname <- substr(DF$Kunden.Nr..Kurzname, FindFirstSpace + 1, 1000)

regexpr返回&#34;的第一个实例&#34;从你的角色矢量。请注意regexpr用于查找表达式&#34;喜欢&#34;你的模式。但fixed = TRUE使搜索具体化。 然后从第一个空格后取出Substring。对于stop值,您可以使用任何数字。

答案 2 :(得分:0)

您可以执行gsub("^[0-9]{1,4}\\s","",df$Kunden.Nr..Kurzname)