我正在从人口普查局导入固定记录数据集,并且出现扫描文件错误。我知道这个问题曾经被问过,但似乎没有答案在这里适用。
所以让我从细节开始:
这是用于加载数据集的R代码。
library(downloader)
download("http://thedataweb.rm.census.gov/pub/cps/supps/nov16pub.zip", dest="dataset.zip", mode="wb")
unzip("dataset.zip")
解压缩该zip文件后,将剩下一个名为“ nov16pub.dat”的.dat文件。这是968个字符的记录。这里大约有152K记录。
所以我尝试使用以下代码加载该代码:
census_data2 <- read.fwf("nov16pub.dat",
widths <- c(15, 2, 4, 5, 2, 64, 2, 27, 2, 1, 2, 2, 2, 2, 4, 2, 2, 22, 3, 3, 3, 2, 777, 2, 2, 2, 2, 2, 8),
header = FALSE,
skip = 0,
comment.char="",
sep = "",
col_names <- c("HRHHID", "HRMONTH", "HRYEAR4", "Skip1", "HUSPNISH", "Skip2", "GESTFIPS", "Skip3", "PRTAGE", "Skip4", "PEMARITL", "Skip5", "PESEX", "PEAFEVER", "Skip6", "PEEDUCA", "PTDTRACE", "Skip7", "PENATVTY", "PEMNTVTY", "PEFNTVTY", "PRCITSHP", "Skip8", "PES1", "PES2", "Skip9", "PES4", "PES5", "Skip10"))
现在,我得到一个错误:
扫描错误(文件=文件,什么=什么,sep = sep,quote =引用,dec = dec,:第1行没有181个元素
我不明白的是为什么R试图寻找181个元素。我只定义了29列,每列都有一个名称。
我已经通过使用相同的宽度在Excel中打开该宽度成功解决了这个问题(嗯,在excel中,您需要这样的起点:宽度向量: 0、15、17、21、26、28、92、94、121、123、124、126、128、130、132、136、138、140、162、165、168、171、173、950、952, 954、956、958、960。此向量允许您导入Excel。
我将其另存为.csv并进行了移动。
为什么选择181个元素?这是怎么回事?