BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
kfwright23
Fluorite | Level 6

Has anyone developed SAS code to convert the new SAT scores to the old SAT scores to complete the Common Data Set?  I am specifically looking for code for total or composite scores and subscores. My university’s Student Information System captures the old test/subtests and the new test/subtests in different fields. As an analyst in Institutional Research, the table found on www.sat.org/concordance does not meet my needs.

1 ACCEPTED SOLUTION

Accepted Solutions
art297
Opal | Level 21

Here is an example, converting the total2400 scores.

 

Depending upon which engine you can use to import the xlsx file, the resulting variable names might be different:

 

proc import datafile="c:\art\concordance-tables-new-sat-scores-to-old-sat-scores.xlsx" 
    out=forfmt replace dbms=excel;
  getnames=no;
  datarow=3;
  sheet='Table 1 (Total 2400)';
run;

data forfmt;
  set forfmt (rename=(f1=start f2=label));
  retain fmtname 'sat2400t' type 'N';
run;

proc format cntlin = forfmt;
run;

data want;
  input newsat;
  oldsat=put(newsat,sat2400t.);
  cards;
450
510
1110
;

Art, CEO, AnalystFinder.com

 

View solution in original post

5 REPLIES 5
art297
Opal | Level 21

Can't you just download and import the workbook at: https://collegereadiness.collegeboard.org/xls/concordance-tables-new-sat-scores-old-sat-scores.xls

 

and then use those tables to create formats (using proc format cntlin=) for converting each set of scores?

 

Art, CEO, AnalystFinder.com

kfwright23
Fluorite | Level 6

Can you provide additional information?  

 

art297
Opal | Level 21

How detailed of info do you need. If I provide on example, do you think you could do the rest?

 

Art, CEO, AnalystFinder.com

 

art297
Opal | Level 21

Here is an example, converting the total2400 scores.

 

Depending upon which engine you can use to import the xlsx file, the resulting variable names might be different:

 

proc import datafile="c:\art\concordance-tables-new-sat-scores-to-old-sat-scores.xlsx" 
    out=forfmt replace dbms=excel;
  getnames=no;
  datarow=3;
  sheet='Table 1 (Total 2400)';
run;

data forfmt;
  set forfmt (rename=(f1=start f2=label));
  retain fmtname 'sat2400t' type 'N';
run;

proc format cntlin = forfmt;
run;

data want;
  input newsat;
  oldsat=put(newsat,sat2400t.);
  cards;
450
510
1110
;

Art, CEO, AnalystFinder.com

 

kfwright23
Fluorite | Level 6

Thank you for the code! It worked.  I also thank you for drawing my attention to the Concordance Tables that I initially overlooked because I was only focused on the "tools".

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand in the Innovate Hub.

Watch Now →
How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 5 replies
  • 3630 views
  • 0 likes
  • 2 in conversation