【发布时间】:2018-01-04 05:16:15
【问题描述】:
我正在处理包含客户名字和姓氏的客户数据。我想清除任何随机击键的名称。测试帐户在数据集中杂乱无章,并且具有垃圾名称。例如,在下面的数据中,我想删除客户 2、5、9、10、12 等。感谢您的帮助。
Customer Id FirstName LastName
1 MARY MEYER
2 GFRTYUIO UHBVYY
3 CHARLES BEAL
4 MARNI MONTANEZ
5 GDTDTTD DTTHDTHTHTHD
6 TIFFANY BAYLESS
7 CATHRYN JONES
8 TINA CUNNINGHAM
9 FGCYFCGCGFC FGCGFCHGHG
10 ADDHJSDLG DHGAHG
11 WALTER FINN
12 GFCTFCGCFGC CG GFCGFCGFCGF
13 ASDASDASD AASDASDASD
14 TYKTYKYTKTY YTKTYKTYK
15 HFHFHF HAVE
16 REBECCA CROSSWHITE
17 GHSGHG HGASGH
18 JESSICA TREMBLEY
19 GFRTYUIO UHBVYY
20 HUBHGBUHBUH YTVYVFYVYFFV
21 HEATHER WYRICK
22 JASON SPLICHAL
23 RUSTY OWENS
24 DUSTIN WILLIAMS
25 GFCGFCFGCGFC GRCGFXFGDGF
26 QWQWQW QWQWWW
27 LIWNDVLIHWDV LIAENVLIHEAV
28 DARLENE SHORTRIDGE
29 BETH HDHDHDH
30 ROBERT SHIELDS
31 GHERDHBXFH DFHFDHDFH
32 ACE TESSSSSRT
33 ALLISON AWTREY
34 UYGUGVHGVGHVG HGHGVUYYU
35 HCJHV FHJSEFHSIEHF
【问题讨论】:
-
“随机击键”的规则是什么?
-
恐怕没有规矩。测试帐户是通过随机敲击名字和姓氏的键盘键来创建的。如果有一个模式,那就太容易了。感谢您的澄清。
-
首先使用
hunspell库:library(hunspell); df$flag <- hunspell_check(df$FirstName) & hunspell_check(df$LastName)尽管它并不完美(这就是我创建标志的原因)。我认为如果一个名字没有被标记,那么你可以确定它是有效的。但是,您有像第 4 行“Marni Montanez”这样的案例,它似乎有效但已被标记。 -
那么您的目标是找到一个名称数据库(最常见的?)并根据它对您的数据进行子集化。在 R 中相对容易。但是,找到这样的数据库超出了 SO 的范围。
-
谢谢迈克!我认为这可能是一个很好的开始,我会检查 hunspell 的更多功能。谢谢
标签: r data-cleaning