在 R 中使用 gsub 删除邮政编码字段中的值
Using gsub in R to remove values in Zip Code field
我有一个包含值列的数据框,其中之一是美国邮政编码。
Row_num Restaurant Address City State Zip
26698 m 1460 Memorial Drive Chicopee MA 01020-3964
对于此条目,我只想使用 5 位邮政编码 01020 并删除其后的“-3964”,并对数据框中的每个条目执行此操作。现在,邮政编码列被 r 视为 chr。
我试过以下 gsub 代码:
df$Zip <- gsub(df$Zip, pattern="-[0,9]{0,4}", replacement = "")
然而,所做的只是将“-”替换为没有 space。这不仅不是我想要的,而且也不是我所期望的,因此对于 gsub 的行为方式以及如何获得所需结果的任何帮助将不胜感激。
谢谢!
编辑:我通过反复试验发现这段代码也能正常工作
df$Zip <- gsub(df$Zip, pattern="-.*", replacement = "")
您定义的字符class只有0、9、","三个元素。在字符 class 括号内,您需要使用破折号作为范围运算符,因此请尝试:
df$Zip <- gsub(df$Zip, pattern="-[0-9]{0,4}", replacement = "")
我有一个包含值列的数据框,其中之一是美国邮政编码。
Row_num Restaurant Address City State Zip
26698 m 1460 Memorial Drive Chicopee MA 01020-3964
对于此条目,我只想使用 5 位邮政编码 01020 并删除其后的“-3964”,并对数据框中的每个条目执行此操作。现在,邮政编码列被 r 视为 chr。
我试过以下 gsub 代码:
df$Zip <- gsub(df$Zip, pattern="-[0,9]{0,4}", replacement = "")
然而,所做的只是将“-”替换为没有 space。这不仅不是我想要的,而且也不是我所期望的,因此对于 gsub 的行为方式以及如何获得所需结果的任何帮助将不胜感激。
谢谢!
编辑:我通过反复试验发现这段代码也能正常工作
df$Zip <- gsub(df$Zip, pattern="-.*", replacement = "")
您定义的字符class只有0、9、","三个元素。在字符 class 括号内,您需要使用破折号作为范围运算符,因此请尝试:
df$Zip <- gsub(df$Zip, pattern="-[0-9]{0,4}", replacement = "")