子集邮政编码字符串在 R、zip_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 删除带有"-"或"的字符。这两种方法似乎都无法正常工作。

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

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

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

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

最新更新