0

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

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

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

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

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

任何帮助将不胜感激。

4

1 回答 1

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 压缩文件,然后才能成功阅读它。通常,我认为,可以直接从 url 读取。我不确定为什么从 url 读取在这里不起作用。

于 2018-02-09T17:37:02.483 回答