如何导入布局存储在 SAS 文件 (.sas) 中的固定宽度文本文件(包含许多变量)?
How to import a fixed-width text file (with many variables) which the layout is stored in a SAS File (.sas)?
我无法理解如何使用以下文件:
- 一个包含每个变量的位置-列-和长度的.sas文件(我有500+);和
- 包含这些变量值的文本文件(我有超过 120k 个观察值)。
我已经发布了一个关于此的问题,似乎合并变量名称和值的唯一方法是手动进行。问题是我几天来一直在努力解决这个问题,但经常犯错误。
有没有人知道如何解决这个问题并使用 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在真正的代码中是没有的,这里加进去是为了解释代码。
一种方法是:
下载WPS Workbench Community edition。 WPS Workbench是一款读取sas文件的软件。如果你注册了一些College/University,你也可以下载学术版(没有广告,还有额外的功能)。安装并设置好后,打开它。
在 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;
如果不是,请添加上面的最后两行。
- 编写语法将您的数据导出到
.csv
。只需在.sas
程序文件末尾写入如下代码即可:
proc export data=YOUR_DATA
outfile="c:\myfiles\YourData.csv"
dbms=csv
replace;
run;
确保在第一行再次写下正确的文件名(您选择的那个),并在第二行写下要保存 .csv 文件的正确路径。
按ctrl + R
到运行代码,或点击运行按钮。单击 Save and run
WPS 对话框中的 Ok
。
- 最后,打开Pandas中的
.csv
。
我无法理解如何使用以下文件:
- 一个包含每个变量的位置-列-和长度的.sas文件(我有500+);和
- 包含这些变量值的文本文件(我有超过 120k 个观察值)。
我已经发布了一个关于此的问题,似乎合并变量名称和值的唯一方法是手动进行。问题是我几天来一直在努力解决这个问题,但经常犯错误。
有没有人知道如何解决这个问题并使用 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在真正的代码中是没有的,这里加进去是为了解释代码。
一种方法是:
下载WPS Workbench Community edition。 WPS Workbench是一款读取sas文件的软件。如果你注册了一些College/University,你也可以下载学术版(没有广告,还有额外的功能)。安装并设置好后,打开它。
在 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;
如果不是,请添加上面的最后两行。
- 编写语法将您的数据导出到
.csv
。只需在.sas
程序文件末尾写入如下代码即可:
proc export data=YOUR_DATA
outfile="c:\myfiles\YourData.csv"
dbms=csv
replace;
run;
确保在第一行再次写下正确的文件名(您选择的那个),并在第二行写下要保存 .csv 文件的正确路径。
按ctrl + R
到运行代码,或点击运行按钮。单击 Save and run
WPS 对话框中的 Ok
。
- 最后,打开Pandas中的
.csv
。