寻找SAS中的最大值(前三名)

时间:2016-04-07 09:35:00

标签: sas

我是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

1 个答案:

答案 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