R使用邮政编码标题导入和导出CSV

时间:2017-06-27 18:29:03

标签: r read.csv

使用邮政编码时,通常情况下前面的" 0"&#s;将会被删除,即马萨诸塞州地址为" 02111"在csv文件中将导入并截断为" 2111"。

Q1:read.csv保持邮政编码原封不动的正确列标题是什么?

Q2:导出数据帧并保持邮政编码完整的正确方法是什么?

来源DF:FDIC

library(readr)
library(dplyr)
library(tidyr)

FDIC_1_source <- read_csv("OFFICES2_ALL.CSV")

NEState<-c("CT", "DC", "DE", "MA", "MD", "ME", "NH", "NJ", "NY", "PA", "RI", "VA", "VT")

FDIC_2_filtered<-FDIC_1_source[FDIC_1_source$STALP %in% NEState,]

write.csv(FDIC_2_filtered,file="FDIC_2_filtered.CSV")

我在SO上找到的最接近的问题是With Dates and Numbers但是我无法想到使用Zip代码文档的方法。

2 个答案:

答案 0 :(得分:1)

如果源文件中缺少前导零。试试这个,因为我不知道邮政编码的列名,在这个例子中我只使用zip.col作为列名。

FDIC_1_source <- read_csv("OFFICES2_ALL.CSV")

FDIC_1_source$zip.col <- sapply(FDIC_1_source$zip.col, function(x) paste0(paste0(rep("0",5 - nchar(x)), collapse = ""), x))

答案 1 :(得分:0)

可以使用Zipcode包解决问题。可以找到文档Here。将使用代码更新以反映新发现的库。

library(readr)
library(dplyr)
library(tidyr)
library(zipcode)

FDIC_1_source <- read_csv("OFFICES2_ALL.CSV")

NEState<-c("CT", "DC", "DE", "MA", "MD", "ME", "NH", "NJ", "NY", "PA", "RI", "VA", "VT")

FDIC_2_filtered<-FDIC_1_source[FDIC_1_source$STALP %in% NEState,]

FDIC_2_filtered$ZIP = clean.zipcodes(FDIC_2_filtered$ZIP) #this will fix any zip code errors, esecially working with North East States

write.csv(FDIC_2_filtered,file="FDIC_2_filtered.CSV")

注意:在阅读后续csv文件时,Excel仍然很痛苦。它仍然会截断前面的&#34; 0&#34;但对于所有其他应用程序,库将自动修复zipcode问题并导出就好了。请感谢该软件包的作者Jeffrey Breen撰写易于使用且优雅的解决方案。