【发布时间】:2019-06-20 06:40:22
【问题描述】:
我正在使用一个包含 40 多个变量的数据库。每个案例都有其属性的唯一标识符。这些标识符中的一些已被输入到地址变量中。
标识符只能采用以下格式:
NA123456 - First letter constant - N, 1 Letter A-K, Numbers 1-9
SA123456 - First 2 letters constant - SA, 6 Numbers 0-9
MABC1234 - First letter constant - M, 3 Letters A-Z, 4 Numbers 0-9
QABC1234 - First letter constant - Q, 3 Letters A-Z, 4 Numbers 0-9
WABC1234 - First letter constant - W, 3 Letters A-Z, 4 Numbers 1-9
TABC1234 - First letter constant - T, 3 Letters A-Z, 4 Numbers 1-9
3ABCD123 - First number constant - 3, 3 Letters A-Z, 3 Numbers 1-9
我不确定如何在不创建查找表和使用 left_join 的情况下从地址文本中删除唯一标识符。查找表需要不断更新,使其非常麻烦。
我还没有找到这类事情的例子。我可能错过了一些东西。
我的数据如下所示:
Property Address `Aa reference`
<chr> <chr> <lgl>
1 PIC: 3WABG086 260 SPRINGHURST ROAD NA
2 PIC: 35PSR217 1350 RIVER ROAD NA
3 PIC# NH244157 1038 QUONDONG ROAD NA
4 PIC: 3GMUF425 70 DIGBY ROAD NA
5 PIC# 3GMUF425 70 DIGBY ROAD NA
6 PIC QTIWW0626 REMOLEA NA
7 PIC#EBWSE235 BOX 191 NA
8 PIC #3WLKM019 198 MONTGOMERY ROAD NA
9 PIC # 3BWMM021 149 ANDERSONS ROAD NA
10 PIC: 3WCGN034 WERRIBEE NA
11 GARANGULA PIC: NH630488 PO BOX 84 NA
12 GARANGULA PIC: NH630488 PO BOX 84 NA
13 PIC: 3GMTL320 2980 GLENELG HIGHWAY NA
14 GREENSLOPES PIC: MJKE0261 914 WEST KENTISH ROAD NA
15 PIC: WFZB3246 859 PFEIFFER ROAD NA
16 PIC: WFAY3549 34605 ALBANY HIGHWAY NA
17 PIC: 3CEXK044 2244 LAVERS HILL ROAD NA
18 PIC: QGWW0462 ELDERFIELD NA
19 PIC: 3WCGN034 WERRIBEE NA
20 KAYA DORPER & WHITE DORPER STUD PIC: WABN0262 NA
21 SPOTTSWOOD PIC QKDR0078 NA
22 COOMBOONA HOLSTEINS PIC 3SPSR217 NA
23 ROSEVALE PIC: QKEV0169 NA
24 NA PIC 3EGON009 NA
25 NA PIC WFKPO316 NA
26 IVADENE PIC 3WANP0T1 NA
27 NA PIC ND225813 NA
28 HEAVENLY VALLEY FARMS PIC #NF538645 NA
29 C/- CED WISE AB CENTRE PIC: QCST0158 NA
30 GARANGULA PIC # NH630488 NA
干净的数据最终会以 aa reference 列中的唯一标识符结束,并且不会用 NA 覆盖在正确变量中包含数据的观察结果。
非常感谢您的帮助。
【问题讨论】:
-
请通过添加
dput(yourData[1:30, ])的输出来编辑您的问题。 -
ID 中有固定数量的字母或数字吗?例如。如果 Q 是有效的 ID,它是否总是后跟 3 个字母、4 个数字?如果是这样,那将更容易检查 ID。
-
你说数字 1-9.. 很多行都包含 nu,ber 0。应该排除它们吗?另外:搜索字符串的长度是固定的吗?
-
@Marius,是的,我已经更新了问题。
-
@Wimpel,我已更新问题以包含 0-9。