我想创建一个标准文本文件格式,每个患者有 100 个位置,如所附屏幕截图(忽略前 2 行),以获取国家死亡指数要求的死亡日期。我尝试了这一点sas,然后将其导出为.txt,但我注意到在记事本中打开该列时,列宽未正确对齐。他们不想保留标题,但我们需要保留规定的宽度。
这是我的示例虚构数据集(我在 Excel 中)和我使用的代码
Abei Ghador 07 16 1992
Aziz Patrick 07 01 1947
Ali Theodore 07 01 1966
Abdelrahman Baker A 05 01 1966
Abd Farik 11 01 1971
Abele Mat A 04 01 1994
Run Code Online (Sandbox Code Playgroud)
以下是我的一些努力,sas因为我不断将每一列合并到组合数据中,但最终的 .txt 不符合他们的要求。
data combinedAoDB; merge LastName1 FirstName2 ;run;
data combinedAoDB; merge combinedAoDB MIDDLEINITIAL3 SSN4 MONTHBIRTH5 DAYBIRTH6 YEARBIRTH5;run;
data combinedAoDB; merge combinedAoDB FATHERSURNAME8 AGEUNITdeath9 NUMBERAGEUNITSdth_10 SEX_11 RACE_12 MARITALSTATUS_13 STATEOFRESIDENCE_14;run;
data combinedAoDB; merge combinedAoDB STATEOFBIRTH_15 CONTROLIDNUMBER_16 OPTIONALUSERDATA_17 BLANKFIELD_18;run;
proc contents data=combinedAoDB;run;
proc export data=work.combinedAoDB outfile='new 3 combinedAoDB.txt'
replace; putnames=no; run;
Run Code Online (Sandbox Code Playgroud)
任何有关如何解决此问题的建议将sas不胜R感激。
您无法“导出”到固定长度的文件。你不需要这样做。您只需直接写入固定长度文件即可。
data _null_;
set work.combinedAoDB;
file 'new 3 combinedAoDB.txt' lrecl=100 pad;
put @1 lastname $20.
@21 firstname $15.
@36 middleinitial $1.
...
@46 month Z2. day Z2. year Z4.
...
;
run;
Run Code Online (Sandbox Code Playgroud)
如果您将第一张图片中的文本作为实际文本(或已经作为数据集),那么您可以使用它来生成 PUT 语句。但对于 17 个变量,您可以自己输入。
让我们尝试一些示例数据:
data have;
infile cards dsd dlm='|' truncover;
input lastname :$20. firstname :$25. middleinitial :$1. month day year;
cards4;
Abei|Ghador||07|16|1992
Aziz|Patrick||07|01|1947
Abele|Mat|A|04|01|1994
;;;;
filename fda temp;
data _null_;
set have;
file fda lrecl=100 pad;
put @1 lastname $20.
@21 firstname $15.
@36 middleinitial $1.
@46 month Z2. day Z2. year Z4.
;
run;
data _null_;
infile fda ;
input;
list;
run;
Run Code Online (Sandbox Code Playgroud)
结果
RULE: ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
1 Abei Ghador 07161992 100
2 Aziz Patrick 07011947 100
3 Abele Mat A 04011994 100
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |