SAS输出声明

Sam*_*Sam 3 sas

我正在尝试更改原始数据文件的输出.在原始数据中,数据采用以下格式:

Name    Test1   Test2   Test3   Test4
xyz     45      78      88      100
avb     -1      89      76      29
Run Code Online (Sandbox Code Playgroud)

但我想将数据结构更改为以下格式:

Name    Score
xyz     45
xyz     78  
xyz     88
xyz     100
xyz     89 (skip -1 because it's less than 0) 
Run Code Online (Sandbox Code Playgroud)

我试图使用数组和输出语句,但有麻烦.这是我的代码:

Data Stats; 
  set Record; 
  Array Test(*) Test1 - Test 6; 
  do i = 1 to 6; 
    if Test(i) gt -1 then output; 
  end;
run;
Run Code Online (Sandbox Code Playgroud)

Joe*_*Joe 5

您缺少的是将值移动到单个列中.现在你得到了正确的行数,但你没有得到单列.

Data Stats; 
  set Record; 
  Array Test(*) Test1 - Test 6; 
  do i = 1 to 6; 
    if Test(i) gt -1 then do;
      score=test(i);  *save value onto Score variable;
      output; 
    end;
  end;
  keep score name;  *only keep the two variables you want;
run;
Run Code Online (Sandbox Code Playgroud)