【问题标题】:R Importing and Exporting CSV with ZIP Code HeadersR使用邮政编码标题导入和导出CSV
【发布时间】:2017-07-05 15:10:55
【问题描述】:

使用邮政编码时,通常会删除前面带有“0”的州,即 csv 文件中带有“02111”的马萨诸塞州地址将被导入并截断为“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 但是我想不出一种方法来使用邮政编码的文档。

【问题讨论】:

  • CSV 文件中是否确实缺少前导零,或者当您在 Excel 中打开 CSV 文件以记录特定的不良行为者时,它们是否会消失?跨度>
  • Excel 在导入时总是去掉“0”。尽管该列可以重新分类为“ZIP”,但不会保存好...保存为 csv。虽然在另存为 excel 文件时会保留重新分类。 CSV 非常适合在不同的软件平台上工作。因此,需要使用 R 将特定列自动分类为“ZIP”,并将“ZIP”导出为 CSV。
  • 如果在读取 csv 后数据框中的零被丢弃,则尝试在读取 csv 时指定列类型 IE read_csv("OFFICES2_ALL.CSV", col_types = "character")
  • @MattJewett 这是一个修复方法,但前提是 CSV 具有前面的 0。描述它的最佳方式是,对于源文件,您将在 CSV 中包含邮政编码。我想导入到 R 并让 R 识别 ZIP 列并自动转换地址,即马萨诸塞州邮政编码“2111”->“02111”。

标签: r read.csv


【解决方案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))

【讨论】:

  • 谢谢马特,我理解你写的函数,感谢你的时间。
【解决方案2】:

问题可以通过邮政编码包解决。可以在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 编写了一个易于使用且优雅的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    相关资源
    最近更新 更多