R 使用邮政编码导入和导出 CSV Headers
R Importing and Exporting CSV with ZIP Code Headers
使用邮政编码时,前面带有“0”的州通常会被删除,即 csv 文件中带有“02111”的马萨诸塞州地址将被导入并截断为“2111”。
问题 1: read.csv 保持邮政编码完整的正确列 header 是什么?
问题 2:导出数据帧并保持邮政编码完整的正确方法是什么?
来源 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 但是我想不出使用邮政编码文档的方法。
可以使用邮政编码包解决问题。可以找到文档 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")
注意:Excel读取后续的csv文件还是很痛苦的。它仍然会截断前面的“0”,但对于所有其他应用程序,该库将自动修复邮政编码问题并正常导出。请感谢包的作者 Jeffrey Breen 编写了一个易于使用且优雅的解决方案。
如果源文件中缺少前导零。试一试,因为我不知道邮政编码的列名,在这个例子中我将只使用 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))
使用邮政编码时,前面带有“0”的州通常会被删除,即 csv 文件中带有“02111”的马萨诸塞州地址将被导入并截断为“2111”。
问题 1: read.csv 保持邮政编码完整的正确列 header 是什么?
问题 2:导出数据帧并保持邮政编码完整的正确方法是什么?
来源 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 但是我想不出使用邮政编码文档的方法。
可以使用邮政编码包解决问题。可以找到文档 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")
注意:Excel读取后续的csv文件还是很痛苦的。它仍然会截断前面的“0”,但对于所有其他应用程序,该库将自动修复邮政编码问题并正常导出。请感谢包的作者 Jeffrey Breen 编写了一个易于使用且优雅的解决方案。
如果源文件中缺少前导零。试一试,因为我不知道邮政编码的列名,在这个例子中我将只使用 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))