子集邮政编码字符串不同,R / zip_choropleth中的长度/字符不同

时间:2018-07-09 17:00:41

标签: r subset choropleth

我正在使用zip_choropleth。问题的根源在于,在我的区域中,邮政编码存在一些问题 这些问题是:

  1. 其中带有空格的字符串(尤其是字符串开头带有空格的字符串)
  2. 其中带有负号的字符串
  3. 其中带有字母的字符串

例如:

region
00234
78623
 3432
-0043
11000
HV 34
88302

我想做的是通过df $ region为确切长度且仅包含数字的字符串子集数据。 zip_choropleth似乎无法正常工作。

我尝试通过字符长度进行子设置

data <- subset(data, nchar(data$region) == 5)

并使用grep删除带有“-”或“”的字符。两种方法似乎均无法正常工作。

1 个答案:

答案 0 :(得分:2)

使用正则表达式,您可以匹配5位数字:

> subset(df, grepl("\\d{5}", region))
  region
1  00234
2  78623
5  11000
8  88302

\\d表示数字,{5}表示连续五位。

您还可以使用^\\d{5}$将正则表达式锚定到开头/结尾,但这对于您发布的示例数据来说不是必需的。例如,如果其中包含具有六位或更多数字的邮政编码,或者具有五位数字和字母的邮政编码,则可能要尝试。