gpt4 book ai didi

sas - 使用数据集变量的文件名语句的正确语法

转载 作者:行者123 更新时间:2023-12-02 02:21:25 24 4
gpt4 key购买 nike

我是 SAS 新手,我似乎无法找出正确的语法。我有一个数据集(fileList),其中一个字段(projFile)保存文件名。我希望打开该文件并将内容读入将创建的第二个字段。该文件已压缩(它是 SAS-EG 项目文件),因此我被告知应该将 Filename 语句与 zip 一起使用读取文件的strong>选项。但是,无论我如何引用 projFile 它都不喜欢它。

data fileList;
set fileList;
filename inzip zip "&projFile" member="project.xml";
infile inzip;
input fileContent $char2000.;
output;
run;

我的输入语句也可能是错误的,但在我解决这个问题之前,我不知道。谢谢。

最佳答案

如果您始终从 ZIP 文件中读取相同的文件(成员),则可以使用 infile 语句中的 FILEVAR= 选项来切换您正在读取该成员的 ZIP 文件。

因此,如果我有三个 ZIP 文件,每个文件中都有一个名为 example.txt 的文件和一个带有文件名列表的数据集。

data fnames ;
input filename $80.;
cards;
c:\downloads\file1.zip
c:\downloads\file2.zip
c:\downloads\file3.zip
;

然后我可以使用该数据集来创建一个包含这些文件中的信息的新数据集。

data test;
set fnames ;
fname=filename;
infile in zip filevar=fname member='example.txt' end=eof truncover;
do while (not eof);
input line $100. ;
output;
end;
run;

如果驾驶数据集具有要读取的 ZIP 文件中的成员列表,那么您也可以在 INFILE 语句上使用 MEMVAR= 选项。

data members ;
infile cards dsd dlm='|' truncover ;
input filename :$80. memname :$80.;
cards;
c:\downloads\file1.zip|example.txt
c:\downloads\file2.zip|example.txt
c:\downloads\file3.zip|example.txt
;

data test;
set members ;
filevar=filename;
memvar=memname;
infile in zip filevar=filevar memvar=memvar end=eof truncover;
do while (not eof);
input line $100. ;
output;
end;
run;

关于sas - 使用数据集变量的文件名语句的正确语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66354105/

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