将美国人口普查产品读入R

时间:2018-02-09 15:22:37

标签: r census

我正在尝试将SIPP 2014面板数据导入r但是遇到了一些麻烦。

可以在这里找到: https://www.census.gov/programs-surveys/sipp/data/2014-panel/wave-1.html

通常,这将是一个非常简单的过程,我可以使用

data = read.csv("pu2014w1.dat")

问题源于数据集的大小以及我不知道它是由什么分隔的事实以及列标题是如何完成的。可悲的是,我找不到将此文件导入R的文档。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

似乎文件https://thedataweb.rm.census.gov/pub/sipp/2014/pu2014w1.dat.gz

解压缩后,

是一个固定宽度格式的文本文件。所以,要阅读它,我们可以使用

library(readr)
read_delim("https://thedataweb.rm.census.gov/pub/sipp/2014/pu2014w1.sas", 
       delim = " ", col_names = FALSE, skip = 6) -> foo
fwf_positions(start = foo$X4, end = foo$X6) -> bar
bar[ - c(5223:5231), ] -> bar2
bar3 <- bar2 %>% mutate(width = end - begin)

foobar <- fwf_widths(bar3$width)

read_fwf("pu2014w1.dat.gz", col_positions = foobar)

请注意,在读取固定宽度的文本文件时,我们需要指定字段的位置。我通过操纵sas输入文件的内容来做到这一点,它告诉我们字段的位置(用于SAS)。另外,在我成功阅读之前,我必须下载gzip压缩文件。通常,我认为,人们可以直接从网址上阅读。我不确定为什么从网址上阅读不起作用。