首页 > 解决方案 > 从 excel 到 R 时,从数字的开头删除一个 0。我如何防止这种情况发生?

问题描述

我有一系列存储在 excel 中的邮政编码(不是我的选择),我需要导入到 R 中,但是为了保留使用匹配函数的能力,我需要从这些邮政编码中的大多数开始的“0” . 在读取 csv 时,如何防止它们 R 丢弃 0?

标签: rdata-cleaning

解决方案


这些数据被保存为一个.csv文件,但如果你想重现它,你必须运行这些第一行:

    ZIP<-structure(list(V1 = c("08979", "67689", "06978", "54823")), class = "data.frame", row.names = c(NA, 
-4L))

write.csv(ZIP, "Zips.csv")

如果您在没有任何选项的情况下阅读

ZIP<-read.csv("Zips.csv",header=F)
head(ZIP)
     V1
1  8979
2 67689
3  6978
4 54823

你前面缺少零,因为 R 假设类是整数或数字,所以前面的零是没有意义的。但是,如果您设置colClasses = "character",则可以避免这种情况:

ZIP<-read.csv("Zips.csv",header=F, colClasses="character")

head(ZIP)
 V1
1 08979
2 67689
3 06978
4 54823

它也可以作为因素:

ZIP<-read.csv("Zips.csv",header=F, colClasses="factor")
head(ZIP)
     V1
1 08979
2 67689
3 06978
4 54823

推荐阅读