如何导入布局存储在 SAS 文件 (.sas) 中的固定宽度文本文件(包含许多变量)?

How to import a fixed-width text file (with many variables) which the layout is stored in a SAS File (.sas)?

我无法理解如何使用以下文件:

我已经发布了一个关于此的问题,似乎合并变量名称和值的唯一方法是手动进行。问题是我几天来一直在努力解决这个问题,但经常犯错误。

有没有人知道如何解决这个问题并使用 python pandas 自动导入?

.sas 文件(在 WPS workbench 中打开)显示如下:

DATA YOUR_DATA;
INFILE 'C:\Users\...\file.txt';
    
 ***Column   VarName   Varlength      VarLabel***
    @18      PROFAM    6.             /*  progressivo famiglia univoco a livello indagine                                                                                                                                                           */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
    @24      PROIND    2.             /*  progressivo individuo nell'ambito della famiglia                                                                                                                                                          */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
    @29      NCOMP     2.             /*  n° dei componenti la famiglia attuale                            

其中Column VarName Varlength VarLabel在真正的代码中是没有的,这里加进去是为了解释代码。

一种方法是:

  1. 下载WPS Workbench Community edition。 WPS Workbench是一款读取sas文件的软件。如果你注册了一些College/University,你也可以下载学术版(没有广告,还有额外的功能)。安装并设置好后,打开它。

  2. 在 WPS 环境中,打开 .sas 程序:通过单击 File -> Open File 并选择您的 .sas 文件,这将在WPS中打开。像这样设置三行:

DATA YOUR_DATA;
INFILE 'C:\Users\...\path_to_your_file\YOURDATA.TXT' LRECL=978 MISSOVER;
INPUT
 @18  PROFAM  6.  /*  progressivo famiglia univoco a livello indagine */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
 @24  PROIND  2.  /*  progressivo individuo nell'ambito della famiglia*/ 

只需在第一行选择您想要的数据名称,然后在第二行输入 .txt 文件的正确路径。

2.1 通过以下方式更正代码: 删除 INPUT 语句和第一行数据之间的行 ***Column VarName Varlength VarLabel***

2.2 检查最后一个变量后的最后两行,它应该这样结束:

@235 NCOMPL  8. /*  n° rendimento la famiglia attuale */
;
run;

如果不是,请添加上面的最后两行。

  1. 编写语法将您的数据导出到.csv。只需在.sas程序文件末尾写入如下代码即可:
proc export data=YOUR_DATA
     outfile="c:\myfiles\YourData.csv"
     dbms=csv 
     replace;
run;

确保在第一行再次写下正确的文件名(您选择的那个),并在第二行写下要保存 .csv 文件的正确路径。

ctrl + R到运行代码,或点击运行按钮。单击 Save and run WPS 对话框中的 Ok

  1. 最后,打开Pandas中的.csv