基于 SAS 脚本 (NHANES III) 将 SAS 数据文件读入 R

Read a SAS data file into R based on a SAS script (NHANES III)

我正在尝试阅读 NHANES III,这是一个公开可用的流行病学数据集,可从以下位置获得: https://wwwn.cdc.gov/nchs/nhanes/nhanes3/datafiles.aspx#core

不清楚如何执行此操作,但他们确实提供了数据文件和 SAS 文件:

https://wwwn.cdc.gov/nchs/data/nhanes3/1a/lab.dat

https://wwwn.cdc.gov/nchs/data/nhanes3/1a/lab.sas

数据文件似乎不是常规的 SAS 导出格式。这是 header:

的示例

00003038722311121202610404037061400.6411144120 000001523001737.58001735.14003702.83 000000000 000000000000003046003475.15003470.28007405.66 000000000

但是 SAS 文件似乎用 LENGTH、FORMAT、INPUT 和 LABEL 来描述它的格式 headers:

FILENAME LAB "D:\LAB\DAT\LAB.DAT" LRECL=1979;
*** LRECL includes 2 positions for CRLF, assuming use of PC SAS;

DATA WORK;
  INFILE LAB MISSOVER;


LENGTH
    SEQN      4
    DMPFSEQ   5
    DMPSTAT   3
    ......
 FORMAT
    DMPPIR   Z6.3
    WTPFQX6  Z9.2
    WTPFEX6  Z9.2
    ......
 INPUT
    SEQN     1-5
    DMPFSEQ  6-10
    DMPSTAT  11
    ......
LABEL
    SEQN     = "Sample person identification number"
    DMPFSEQ  = "Family sequence number"
    DMPSTAT  = "Examination/interview Status"

知道如何将其读成友好的格式吗?

使用 SAScii 包应该是可能的。不过可能需要几分钟时间。

library(SAScii)
read.SAScii("https://wwwn.cdc.gov/nchs/data/nhanes3/1a/lab.dat", 
                      "https://wwwn.cdc.gov/nchs/data/nhanes3/1a/lab.sas", zipped = F)