删除之前的数字

Removing numbers before

我有一个客户名单的数据集。类型因子 (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

基本上,我需要删除第一个 space 之前的所有内容,包括第一个 space。想通了大概要用"gsub",可惜好久没用R了。非常感谢您的帮助。

我建议使用群组:

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 提供。

之前的所有答案都有点过载。这是一个建议,它有点直截了当,并且可以按照您的要求做所有事情。

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 returns 字符向量中“ ”的第一个实例。请注意,regexpr 用于查找表达式 "like" 您的模式。但是 fixed = TRUE 使搜索更加具体。 然后从第一个 space 之后取出子串。对于 stop 值,您可以取任何足够大的数字。

你可以简单地做 gsub("^[0-9]{1,4}\s","",df$Kunden.Nr..Kurzname)