跳转至

SAS 数据导入

CSV → SAS

proc import datafile="data/adqs.csv" out=adqs dbms=csv replace;
    guessingrows=10000;  * 防止变量截断;
run;

proc import datafile="data/adsl.csv" out=adsl dbms=csv replace;
run;

SAS 数据集导入

libname indata "C:/rawdata";
data adqs;
    set indata.adqs;
run;

XPT (CDISC) 导入

* 方法1: libname 直连;
libname xptin xport "data/adsl.xpt";
data adsl;
    set xptin.adsl;
run;

* 方法2: proc copy;
libname xptin xport "data/adtte.xpt";
libname out "data";
proc copy in=xptin out=out;
run;

Excel 导入

proc import datafile="data/data.xlsx"
    out=adqs dbms=xlsx replace;
    sheet="ADQS";
run;

批量导入目录下所有 SAS 数据集

filename files pipe 'dir /b "C:\data\*.sas7bdat"';
data _null_;
    infile files truncover;
    input filename $200.;
    call execute(cats(
        'data ', compress(scan(filename, 1, '.')), '; ',
        '  set "C:\data\', filename, '"; ',
        'run;'
    ));
run;

导入时指定变量属性

data adqs;
    length subject $10 treatment $20 visit $10;
    set adqs;
    format aval 8.2 base 8.2;
    label 
        subject = "Subject ID"
        treatment = "Treatment Arm"
        aval = "Analysis Value"
        base = "Baseline Value";
run;