gpt4 book ai didi

csv - 将多个 SAS 数据集批量转换为 CSV 文件

转载 作者:行者123 更新时间:2023-12-04 14:33:52 25 4
gpt4 key购买 nike

我在一个文件夹中有大约 720 个 SAS 数据集(配备了 720 个 SAS 索引文件“.sas7bdnx”),我想将它们转换为 CSV 文件。我知道如何使用 proc export 一次转换一个,但是在一个 SAS 程序中进行所有转换的有效方法是什么?所有数据集都存储在本地 unix 服务器上。

最佳答案

这相当简单,取决于您是否有一些合理的方法在代码中识别它们。

这是简单的答案:

%macro makeCSV(dataset=);
proc export data=&dataset. file="&dataset..csv" dbms=csv replace;
run;
*modify export if needed;
%mend makeCSV;

proc sql;
select cats('%makeCSV(dataset=',memname,')') into :makeCSVlist separated by ' '
from dictionary.tables
where libname='YOURLIB' and memname like 'FORCSV';
quit;
*or whatever logic identifies these 720 or whatnot datasets;
&makeCSVlist; *actually runs the macro calls;

现在,这可能相当慢,但它应该可以工作。更快的不是拥有 720 个数据集,而是一个数据集,并使用 FILEVAR= 选项在数据步骤中写出代码。如果你有大量的变量(因为你必须写出一个 put 语句),这会变得有点困难,但即便如此,你也可以生成类似于我刚刚使用 dictionary.columns 所做的代码。这仍然会生成 720 个 CSV,但速度要快得多,因为它避免了 720 proc 导出调用及其开销。

关于csv - 将多个 SAS 数据集批量转换为 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17244404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com