我有一个大型人口普查数据集,其中有20044425个观测值和35个变量。我试图使用mylib
语句将其转到工作文件夹。我感兴趣的特定变量是一个标题为DISTRICT
的数字变量。但是,将它从计算机中的文件夹中提取到SAS
我尝试使用以下代码
提取我感兴趣的特定DISTRICT
的案例
libname pop "\\Client\C$\Users\lakna\Desktop\SA data";
data mydata;
set pop.Sapop (where=(DISTRICT=3));
run;
然而,它仍然需要很长时间。它花了15分钟的实时时间,而我仍然无法从库中将其提取到工作文件夹中。
是否有更有效的方法来提取大文件?
答案 0 :(得分:1)
在文件服务器上,数据集的内容正在(通过libname引擎)传输到SAS会话机器,然后才能应用where子句。
获得更快切割的一些不同方法是
答案 1 :(得分:0)
为了使速度稍快一些,您可以复制数据集然后进行处理。当您使用COPY过程时,它不会读取它在块中移动的所有数据,因此它应该非常简单。
如果您经常使用此文件,请考虑在常用变量上添加索引以过滤和/或使用COMPRESS选项来减小大小。
libname pop "\\Client\C$\Users\lakna\Desktop\SA data";
proc copy in=pop out=work;
select SAPOP;
run;
data mydata;
set sapop (where=(DISTRICT=3) KEEP = DISTRICT <list of variables>);
run;