SAS计数阵列

SAS计数阵列,sas,Sas,假设我有一个数据“test1”,上面有一个变量“student\u name”和英语分数。我需要从这个数据集中得到“英语”得分超过50分的学生人数。也有类似的例子 测试2、测试3、测试4等数据集也有变量“student_name”。我想从这些数据集中获得得分超过50的学生的计数,以了解趋势。 我无法使用数组,因为我使用了SQL语句。有更好的方法吗?这是我的密码 data Sample1; set test1; run; PROC SQL; CREATE T

假设我有一个数据“test1”,上面有一个变量“student\u name”和英语分数。我需要从这个数据集中得到“英语”得分超过50分的学生人数。也有类似的例子 测试2、测试3、测试4等数据集也有变量“student_name”。我想从这些数据集中获得得分超过50的学生的计数,以了解趋势。 我无法使用数组,因为我使用了SQL语句。有更好的方法吗?这是我的密码

    data Sample1;
    set test1;
    run;
    PROC SQL;
    CREATE TABLE Work.Student AS 
    SELECT distinct s1.student_name, 
    FROM Work.sample1 s1
    WHERE s1.English_score > 50;
    QUIT;

您可以通过删除数据步骤来优化代码,该数据步骤除了将test1重写为sample1之外,什么都不做。 您可以简单地查询test1表

使用SQL:

PROC SQL;
CREATE TABLE Work.Student AS 
SELECT distinct s1.student_name, 
FROM Work.test1 s1
WHERE s1.English_score > 50;
QUIT;
或使用数据步骤:

data work.student;
set work.test1(where=(english_score gt 50));
run;
做一个测试,看看哪个更快