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-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

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
  • 1512 views
  • 0 likes
  • 4 in conversation