我是SAS的新手,我有一点问题。我尝试从目录中文件名中的子字符串中选择3.最大值。为什么我不能这样做?
parent=directory
data files_and_folders;
keep num;
did=dopen("parent");
if dnum(did)>3 then do;
do i=1 to dnum(did);
names=int(substr(dread(did,i),9,8));
num=largest(3,names);
output;
end;
end;
output;
run;
returns
names:
20160322
20160323
20160324
20160325
20160325
but returns null value for num
thanks for help
答案 0 :(得分:1)
您的变量names
是一个数字。
largest
为您提供值列表中的最大值。
例如
k=1
n=largest(k, 1, 2, 3, 4);
结果:n = 4
k=2
n=largest(k, 1, 2, 3, 4);
结果:n = 3
您正试图从列表中获取第三大值。这导致失踪。
您需要输出整个文件。对其进行排序by descending names
。然后将其限制为前三个观察值,例如通过集合陈述中的obs = 3