BookmarkSubscribeRSS Feed
ranikeka
Calcite | Level 5
Hi

I am doing QC on clinical sas ADAM datasets like ADSL ADAE Etc ..for which I need a help. Infact I am using Proc freq and basic Sql statements to cross check data to find errors. I am not able to find all of the critical errors which is a big problem.
Does anybody provide some programs to cross check data perfectly ? I am really in need of help and I would be very grateful if you could help me out.

Thanks a lot.

5 REPLIES 5
data_null__
Jade | Level 19
  1. Using ADaM.adae specification document(s)
  2. program the data set.  (don't look at the source program).
  3. PROC COMPARE  source ADAE with your QC.

Not perfect if source and QC programmers make the same mistake, but you should be able to sleep at night.

ranikeka
Calcite | Level 5
Thank you, yes but it’s takes lot of time to program everything and proc compare. So I am looking for much faster way I can sum it my work.
Aku
Obsidian | Level 7 Aku
Obsidian | Level 7

Are you using Pinnacle 21 Community Validator ? it is the easiest way to check consistency between domains and it also checks domains against controlled terminology.

ranikeka
Calcite | Level 5
Thank you for reply
This is internal QC to use codes and cross check data.
SASKiwi
PROC Star

There is really no such thing as a tool or program that will perfectly validate or check your data. However there are techniques in SAS that can help you like this:

proc freq data = sashelp.class;
  table _numeric_;
run;

This program will count discrete levels of all numeric variables in the chosen dataset. Obviously this is only useful for non-continuous numerics but it gives you an idea as to how you can approach validation.

 

Edit: An example of how to check for missing or zero values:

data test;
  set sashelp.class;
  output;
  if name in ('Carol','Thomas') then do;
    age = 0; height = . ; weight = 0;
    output;
  end;
run;

data test;
  drop i;
  set test;
  array nums (*) _numeric_ ;
  do i = 1 to dim(nums);
    if nums(i) in (.) then Missing_Flag = 'Y';
    if nums(i) in (0) then Zero_Flag = 'Y';
  end;
run; 

proc freq data = test;
  where Missing_Flag = 'Y' or Zero_Flag = 'Y';
  table name * _numeric_ / missing list;
run;

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

Mastering the WHERE Clause in PROC SQL

SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 5 replies
  • 2054 views
  • 0 likes
  • 4 in conversation