Pages

Showing posts with label SAS. Show all posts
Showing posts with label SAS. Show all posts

Monday, June 7, 2010

SAS Interview Questions and Answers: (Behavioral Type Interview Questions)

SAS Interview Questions and Answers:Part1 (Behavioral Type Interview Questions)

www.allwalkin.blogspot.com
1.Tell me about yourself?

sample answer:
I have been working in the Pharmaceutical industry for the past 4.5 years.
My most recent experience has been with CRO, where I’ve worked for the last 2 years.
I enjoy my job because it’s challenging and I like interacting with a variety of people.
In my most recent assignment I was on a project called “Trial of everolimus in combination with Erlotinib in patients with metastatic cancer”.
I made a significant contribution to the project because of my expertise in SAS Programming.
One of my strengths is my attention to detail.
I am known for being extremely thorough and meeting or exceeding deadlines and goals.
My boss knows that I work well under minimal supervision, that I am very conscientious and that the job will be done right the first time.
I’m looking for a new opportunity where I can contribute to the growth of the company by helping educate customers on the benefits of using our consulting services.

sample answer 2:

I have been working in the pharmaceutical industry as a SAS professional for more than 5 years.

I have used Base SAS, SAS Macros and Proc SQL to analyze datasets and then generated Tables, Listings, and Graph’s.

I have generated reports using ODS into formats such as RTF, PDF, and HTML.

I have worked with senior Bio-statisticians and clinical data managers to provide SAS programming in analyzing the clinical trial data according to the SAP.
www.allwalkin.blogspot.com
I have developed programs in SAS for converting the Oracle Data into SAS datasets using SQL Pass through facility and Libname facility.

I have also used SAS macros for frequently used programs and developed programs for generating efficacy and safety tables.

I also involved in validation of my fellow programmer code.I have developed Edit check programs to clean invalid data from the database.

I worked in both WINDOWS and UNIX environments.

I have worked on Case Report Tabulation section of NDA submission as well.

I was also involved in creating annotated case report form (eCRF) using CDISC-SDTM mapping.

I was involved in creating CRT’s for an NDA electronic submission to the FDA.

I also got Involved in mapping, pooling and analysis of clinical study data for safety and validating and QC of the efficacy and safety tables.

Sample Answer 3: My answer....

I've been a SAS programmer for 6 years. I'm especially skilled with CDISC guidelines including SDTM and ADaM.

My recent experience is with XXX company , a CRO in state where I worked as Statistical Programmer on a number of projects in a variety of drug and medical device areas.
I made a significant contribution to the project recently I have worked on because of my expertise in SAS Programming and CDISC skills.

I work well even under minimal supervision also I am a team player.

I had an excellent experience in Base SAS/SAS Graph/Proc SQL including the SAS MACRO language.
www.allwalkin.blogspot.com
I also have great deal of experience in creating CRT’s as a part of electronic submission of NDA application to the FDA.

Now I’m looking for a new opportunity where I can contribute to the growth of the company and have a positive impact on the programming team.


2.Did you bring your resume?
Yes.
Be prepared with two or three extra copies. Do not offer them unless you’re asked for one.

3.What is your long-range objective?

The key is to focus on your achievable objectives and what you are doing to reach those objectives.

For example: “Within five years, I would like to become one of the best SAS Programmer in the Pharmaceutical Industry.

I want to work toward becoming the expert that others rely upon. And in doing so, I feel I’ll be fully prepared to take on any greater responsibilities which might be presented in the long term.For example, here is what I’m presently doing to prepare myself . . .

”Then go on to show by your examples what you are doing to reach your goals and objectives.
www.allwalkin.blogspot.com
4.Are you a team player?

Teamwork is the key.Almost everyone says yes to this question. But it is not just a yes/no question. You need to provide behavioral examples to back up your answer.

A sample answer:

“Yes, I’m very much a team player. In fact, I’ve had opportunities in my work, school and athletics to develop my skills as a team player. For example, on a recent project . . .”Emphasize teamwork behavioral examples and focus on your openness to diversity of backgrounds. Talk about the strength of the team above the individual. And note that this question may be used as a lead in to questions around how you handle conflict within a team, so be prepared You are, of course, a team player.

Be sure to have examples ready. Specifics that show you often perform for the good of the team rather than for yourself are good evidence of your team attitude. Do not brag, just say it in a matter-of-fact tone. This is a key point.


5.What is your greatest weakness?

Most career books tell you to select strength and present it as a weakness. Such as: “I work too much. I just work and work and work.” Wrong.

First of all, using strength and presenting it as a weakness is deceiving.
Second, it misses the point of the question.You should select a weakness that you have been actively working to overcome.

For example: “I have had trouble in the past with planning and prioritization. However, I’m now taking steps to correct this. I just started using a pocket planner . . .” then show them your planner and how you are using it.Talk about a true weakness and show what you are doing to overcome it.

I would say my greatest weakness has been my lack of proper planning in the past. I would over commit myself with too many variant tasks, then not be able to fully accomplish each, as I would like. However, since I've come to recognize that weakness, I've taken steps to correct it. For example, I now carry a planning calendar in my pocket so that I can plan all of my appointments and "to do" items. Here, let me show you how I have this week planned out...

courtesy: http://web.wenxuecity.com/BBSView.php?SubID=career&MsgID=158267


www.allwalkin.blogspot.com
Tell me about yourself?

Start with the present and tell why you are well qualified for the position. Remember that the
key to all successful interviewing is to match your qualifications to what the interviewer is
looking for. In other words you must sell what the buyer is buying. This is the single most
important strategy in job hunting.

So, before you answer this or any question it's imperative that you try to uncover your
interviewer's greatest need, want, problem or goal.

To do so, make you take these two steps:

Do all the homework you can before the hr interview to uncover this person's wants and needs
(not the generalized needs of the industry or company)

As early as you can in the interview, ask for a more complete description of what the position
entails. You might say: “I have a number of accomplishments I'd like to tell you about, but I want to make the best use of our time together and talk directly to your needs. To help me do, that, could you tell me more about the most important priorities of this position? All I know is what I (heard from the recruiter, read in the classified ad, etc .

Then, ALWAYS follow-up with a second and possibly, third question, to draw out his needs even more. Surprisingly, it's usually this second or third question that unearths what the interviewer is most looking for.

You might ask simply, "And in addition to that?..." or, "Is there anything else you see as essential to success in this position?:

This process will not feel easy or natural at first, because it is easier simply to answer questions,
but only if you uncover the employer's wants and needs will your answers make the most sense.
Practice asking these key questions before giving your answers, the process will feel more
natural and you will be light years ahead of the other job candidates you're competing with.
www.allwalkin.blogspot.com
After uncovering what the employer is looking for, describe why the needs of this job bear
striking parallels to tasks you've succeeded at before. Be sure to illustrate with specific examples
of your responsibilities and especially your achievements, all of which are geared to present
yourself as a perfect match for the needs he has just described.

What are your greatest strengths?

You know that your key strategy is to first uncover your interviewer's greatest wants and needs
before you answer questions.

And from Question 1, you know how to do this.

Prior to any interview, you should have a list mentally prepared of your greatest strengths. You
should also have, a specific example or two, which illustrates each strength, an example chosen
from your most recent and most impressive achievements.

You should, have this list of your greatest strengths and corresponding examples from your
achievements so well committed to memory that you can recite them cold after being shaken
awake at 2:30AM.

Then, once you uncover your interviewer's greatest wants and needs, you can choose those
achievements from your list that best match up.

As a general guideline, the 10 most desirable traits that all employers love to see in their
employees are:

A proven track record as an achiever...especially if your achievements match up with the
employer's greatest wants and needs.

Intelligence...management "savvy".
Honesty...integrity...a decent human being.
Good fit with corporate culture...someone to feel comfortable with...a team player who meshes
well with interviewer's team.
Likeability...positive attitude...sense of humor.
Good communication skills.
Dedication...willingness to walk the extra mile to achieve excellence.
Definiteness of purpose...clear goals.
Enthusiasm...high level of motivation.
Confident...healthy... a leader.


What are your greatest weaknesses?

Disguise strength as a weakness.

Example: “I sometimes push my people too hard. I like to work with a sense of urgency and
everyone is not always on the same wavelength.”

www.allwalkin.blogspot.com
Drawback: This strategy is better than admitting a flaw, but it's so widely used, it is transparent
to any experienced interviewer.

BEST ANSWER: (and another reason it's so important to get a thorough description of your
interviewer's needs before you answer questions): Assure the interviewer that you can think of
nothing that would stand in the way of your performing in this position with excellence. Then,
quickly review you strongest qualifications.

Example: “Nobody's perfect, but based on what you've told me about this position, I believe I' d
make an outstanding match. I know that when I hire people, I look for two things most of all. Do
they have the qualifications to do the job well, and the motivation to do it well? Everything in
my background shows I have both the qualifications and a strong desire to achieve excellence in
whatever I take on. So I can say in all honesty that I see nothing that would cause you even a
small concern about my ability or my strong desire to perform this job with excellence.”
Alternate strategy (if you don't yet know enough about the position to talk about such a perfect
fit):

Instead of confessing a weakness, describe what you like most and like least, making sure that
what you like most matches up with the most important qualification for success in the position,
and what you like least is not essential.




Why are you leaving (or did you leave) this position ?

(If you have a job presently tell the hr)
If you’re not yet 100% committed to leaving your present post, don’t be afraid to say so. Since
you have a job, you are in a stronger position than someone who does not. But don’t be coy
either. State honestly what you’d be hoping to find in a new spot. Of course, as stated often
before, you answer will all the stronger if you have already uncovered what this position is all
about and you match your desires to it.

www.allwalkin.blogspot.com
(If you do not presently have a job tell the hr.)
Never lie about having been fired. It’s unethical – and too easily checked. But do try to deflect
the reason from you personally. If your firing was the result of a takeover, merger, division wide
layoff, etc., so much the better.


But you should also do something totally unnatural that will demonstrate consummate
professionalism. Even if it hurts , describe your own firing – candidly, succinctly and without a
trace of bitterness – from the company’s point-of-view, indicating that you could understand
why it happened and you might have made the same decision yourself.


Your stature will rise immensely and, most important of all, you will show you are healed from
the wounds inflicted by the firing. You will enhance your image as first-class management
material and stand head and shoulders above the legions of firing victims who, at the slightest
provocation, zip open their shirts to expose their battle scars and decry the unfairness of it all.


For all prior positions:
Make sure you’ve prepared a brief reason for leaving. Best reasons: more money, opportunity,
responsibility or growth.


Why should I hire you?
By now you can see how critical it is to apply the overall strategy of uncovering the employer’s
needs before you answer questions. If you know the employer’s greatest needs and desires, this
question will give you a big leg up over other candidates because you will give him better
reasons for hiring you than anyone else is likely to…reasons tied directly to his needs.


Whether your interviewer asks you this question explicitly or not, this is the most important
question of your interview because he must answer this question favorably in is own mind
before you will be hired. So help him out! Walk through each of the position’s requirements as
you understand them, and follow each with a reason why you meet that requirement so well.
Example: “As I understand your needs, you are first and foremost looking for someone who can
manage the sales and marketing of your book publishing division. As you’ve said you need
someone with a strong background in trade book sales. This is where I’ve spent almost all of my
career, so I’ve chalked up 18 years of experience exactly in this area. I believe that I know the
right contacts, methods, principles, and successful management techniques as well as any
person can in our industry.”


“You also need someone who can expand your book distribution channels. In my prior post, my
innovative promotional ideas doubled, then tripled, the number of outlets selling our books. I’m
confident I can do the same for you.”

www.allwalkin.blogspot.com
“You need someone to give a new shot in the arm to your mail order sales, someone who knows
how to sell in space and direct mail media. Here, too, I believe I have exactly the experience you
need. In the last five years, I’ve increased our mail order book sales from $600,000 to
$2,800,000, and now we’re the country’s second leading marketer of scientific and medical
books by mail.” Etc., etc., etc.,


Every one of these selling “couplets” (his need matched by your qualifications) is a touchdown
that runs up your score. IT is your best opportunity to outsell your competition.


Aren’t you overqualified for this position?
As with any objection, don’t view this as a sign of imminent defeat. It’s an invitation to teach the
interviewer a new way to think about this situation, seeing advantages instead of drawbacks.


Example: “I recognize the job market for what it is – a marketplace. Like any marketplace, it’s
subject to the laws of supply and demand. So ‘overqualified’ can be a relative term, depending
on how tight the job market is. And right now, it’s very tight. I understand and accept that.”


“I also believe that there could be very positive benefits for both of us in this match.”
“Because of my unusually strong experience in ________________ , I could start to contribute right away, perhaps much faster than someone who’d have to be brought along more slowly.”


“There’s also the value of all the training and years of experience that other companies have
invested tens of thousands of dollars to give me. You’d be getting all the value of that without
having to pay an extra dime for it. With someone who has yet to acquire that experience, he’d
have to gain it on your nickel.”


“I could also help you in many things they don’t teach at the Harvard Business School. For
example…(how to hire, train, motivate, etc.) When it comes to knowing how to work well with
people and getting the most out of them, there’s just no substitute for what you learn over
many years of front-line experience. You company would gain all this, too.”



“From my side, there are strong benefits, as well. Right now, I am unemployed. I want to work,
very much, and the position you have here is exactly what I love to do and am best at. I’ll be
happy doing this work and that’s what matters most to me, a lot more that money or title.”

www.allwalkin.blogspot.com
“Most important, I’m looking to make a long term commitment in my career now. I’ve had
enough of job-hunting and want a permanent spot at this point in my career. I also know that if I
perform this job with excellence, other opportunities cannot help but open up for me right here.
In time, I’ll find many other ways to help this company and in so doing, help myself. I really am
looking to make a long-term commitment.”


NOTE: The main concern behind the “overqualified” question is that you will leave your new
employer as soon as something better comes your way. Anything you can say to demonstrate
the sincerity of your commitment to the employer and reassure him that you’re looking to stay
for the long-term will help you overcome this objection.

SAS Clinical Interview QUESTIONS and ANSWERS

SAS Clinical Interview QUESTIONS and ANSWERS
www.allwalkin.blogspot.com
What is therapeutic area you worked earlier?
There are so many diff. therapeutic areas a pharmaceutical company can work on and few of them include, anti-viral (HIV), Alzheimer’s, Respiratory, Oncology, Metabolic Disorders (Anti-Diabetic), Neurological, Cardiovascular. Few more of them, include…


Central nervous system
Neurology
Gastroenterology
Ophthalmology
Orthopedics and pain control
Pulmonary
Vaccines
Dermatology
Gene therapy
Immunology etc




What are your responsibilities?
Some of them include; not necessarily all of them….


· Extracting the data from various internal and external database (Oracle, DB2, Excel spreadsheets) using SAS/ACCESS, SAS/INPUT.
· Developing programs in SAS Base for converting the Oracle Data for a phase II study into SAS datasets using SQL Pass through facility and Libname facility.
· Creating and deriving the datasets, listings and summary tables for Phase-I and Phase-II of clinical trials.
· Developing the SAS programs for listings & tables for data review & presentation including ad-hoc reports, CRTs as per CDISC, patients listing mapping of safety database and safety tables.
· Involved in mapping, pooling and analysis of clinical study data for safety.
· Using the Base SAS (MEANS, FREQ, SUMMARY, TABULATE, REPORT etc) and SAS/STAT procedures (REG, GLM, ANOVA, and UNIVARIATE etc.) for summarization, Cross-Tabulations and statistical analysis purposes.
· Developing the Macros at various instances for automating listings and graphing of clinical data for analysis.
· Validating and QC of the efficacy and safety tables.
· Creating the Ad hoc reports using the SAS procedures and used ODS statements and PROC TEMPLATE to generate different output formats like HTML, PDF and excel to view them in the web browser.
· Performing data extraction from various repositories and pre-process data when applicable.
· Creating the Statistical reports using Proc Report, Data _null_ and SAS Macro.
· Analyzing the data according to the Statistical Analysis Plan (SAP).
· Generating the demographic tables, adverse events and serious adverse events reports.




Can you tell me something about your last project study design?
If the interviewer asked you this question, then you need to tell that your current project is on a phase-1 study (or phase-2/Phase-3). You also need to tell about the name of the drug and the therapeutic area. Here are some more details you need to lay down in front of him…
a) Is it a single blinded or double-blinded study?
b) Is it a randomized or non-randomized study?
c) How many patients are enrolled.
d) Safety parameters only (if it is a phase-1)
e) Safety and efficacy parameters if the study is either Phase-2,3or 4.
To get the all these details... visit http://www.clinicaltrials.gov/ .


How many subjects were there?
Subjects are nothing but the patients involved in the clinical study.
Answer to this question depends on the type of the study you have involved in.
If the study is phase1 answer should be approx. between 30-100.
If the study is phase2 answer should be approx. between 100-1000.
If the study is phase3 answer should be approx. between 1000-5000.
Note: These are just typical and not exact numbers.




How many analyzed data sets did you create?

Again it depends on the study and the safety and efficacy parameters that are need to determined from the study. Approx. 20-30 datasets is required for a study to get analyzed for the safety and efficacy parameters. Here is some ex. of the datasets.


DM (Demographics),
MH (Medical History),
AE (Adverse Events),
PE (Physical Education),
EG (ECG),
VS (Vital Signs),
CM (Concomitant Medication),
LB (Laboratory),
QS (Questionnaire),
IE (Inclusion and Exclusion),
DS (Disposition),
DT (Death),
SV (Subject Visits),
SC (Subject Characteristics),
CO (Comments),
EX (Exposure),
PC (Pharmacokinetic Concentrations),
PP (Pharmacokinetic Parameters),
TI (Therapeutic Intervention),
and other Supplementary datasets like
SUPPCM, SUPPEX, SUPPLB, SUPPMH, SUPPXT, SUPPEG etc.


How did you create analyzed data sets?
Analysis datasets are nothing but the datasets that are used for the statistical analysis of the data. Analysis datasets contains the raw data and the variables derived from the raw data. Variables, which are derived for the raw data, are used to produce the TLG’s of the clinical study. The safety as well as efficacy endpoints (parameters) dictate the type of the datasets are required by the clinical study for generating the statistical reports of the TLG’s. Sometimes the analysis datasets will have the variables not necessarily required to generate the statistical reports but sometimes they may required to generate the ad-hoc reports.
Refer also http://www2.sas.com/proceedings/forum2008/207-2008.pdf to get the complete info about creation of datasets:


How many tables, listings and graphs?
Can be in between 30-100 (including TLG’s)


What do you mean by treatment emergent and treatment emergent serious adverse events?

Treatment emergent adverse events and Treatment emergent serious adverse events are nothing but the adverse events and serious adverse events which were happened after the drug administration or getting worsen by the drug, if patients are already having those adverse events before drug administration.
www.allwalkin.blogspot.com

Can you explain little bit about the datasets?


DEMOGRAPHIC analysis dataset contains all subjects’ demographic data (i.e., Age, Race, and Gender), disposition data (i.e., Date patient withdrew from the study), treatment groups and key dates such as date of first dose, date of last collected Case Report Form (CRF) and duration on treatment. The dataset has the format of one observation per subject.


LABORATORY analysis dataset contains all subjects’ laboratory data, in the format of one observation per subject per test code per visit per accession number. Here, we derive the study visits according to the study window defined in the SAP, as well as re-grade the laboratory toxicity per protocol. For a crossover study, both the visit related to the initial period and as it is related to the beginning of the new study period will be derived. If the laboratory data are collected from multiple local lab centers, this analysis dataset will also centralize the laboratory data and standardize measurement units by using conversion factors.


EFFICACY analysis dataset contains derived primary and secondary endpoint variables as defined in the SAP. In addition, this dataset can contain other efficacy parameters of interest, such as censor variables pertaining to the time to an efficacy event. This dataset has the format of one record per subject per analysis period.


SAFETY can be categorized into four analysis datasets:


VITAL SIGN analysis dataset captures all subjects’ vital signs collected during the trial. This dataset has the format of one observation per subject per vital sign per visit, similar to the structure for the laboratory analysis dataset.


ADVERSE EVENT analysis dataset contains all adverse events (AEs) reported including serious adverse events (SAEs) for all subjects. A treatment emergent flag, as well as a flag to indicate if an event is reported within 30 days after the subject permanently discontinued from the study, will be calculated. This dataset has a format of one record per subject per adverse event per start date. Partial dates and missing AEs start and/or stop dates will be imputed using logic defined in the SAP.
www.allwalkin.blogspot.com

MEDICATION analysis dataset contains the subjects’ medication records including concomitant medications and other medications taken either prior to the beginning of study or during the study. This dataset has a format of one record per subject per medication taken per start date. Incomplete and missing medication start or stop dates will be imputed using instructions defined in the SAP.


SAFETY analysis dataset contains other safety variables, whether they are defined in the SAP or not. The Safety analysis dataset, similar to Efficacy analysis dataset in structure, consists of data with one record per subject per analysis period to capture safety parameters for all subjects.

It is crucial to generate analysis datasets in a specific order, as some variables derived from one particular analysis dataset may be used as the inputs to generate other variables in other analysis datasets. For example, the time to event variables in the efficacy and safety analysis datasets are calculated based on the date of the first dose derived in the demographic analysis dataset.


Analysis datasets are generated in sequence


(Safety Datasets)
Demographic _______Laboratory __________Efficacy
Vital Sign
Adverse Event
Concomitant Medications


Source:www.thotwave.com/Document/.../GlobalArch/SUGI117-30_GlobalArchitecture.pdf



What is your involvement while using CDISC standards? What is mean by CDISC where do you use it?
CDISC is nothing but an organization (Clinical Data Interchange Standards Consortium), which implements industrial standards for the pharmaceutical industries to submit the clinical data to FDA.
There are so many advantages of using CDISC standards: Reduced time for regulatory submissions, more efficient regulatory reviews of submission, savings in time and money on data transfers among business.


CDISC standards is used in following activities:


Developing CRTs for submitting them to FDA to get an NDA.
Mapping, pooling and analysis of clinical study data for safety.
Creating the annotated case report form (eCRF) using CDISC-SDTM mapping.
Creating the Analysis Datasets in CDISC and non-CDISC Standards for further SAS Programming.




What do you mean when you say you created tables, listings and graphs for ISS and ISE?
http://studysas.blogspot.com/2008/09/what-you-should-know-about-issise-isr.html


How do you do data cleaning?
It is always important to check the data we are using- especially for the variables what we are using. Data cleaning is critical for the data we are using and preparing.
I use Proc Freq, Proc SQL, MEANS, UNIVARIATE etc to clean the data.


I will use Proc Print with WHERE statement to get the invalid date values.
Source: http://books.google.com/books?id=dyzAV8Miv5cC&dq=data+cleaning+techniques+in+SAS&printsec=frontcover&source=bl&ots=nDNyuK3tdi&sig=hWCujflLK53KAA7no8V_c4eu_6I&hl=en&sa=X&oi=book_result&resnum=9&ct=result#PPA32,M1




Can you tell me CRT's??


Creating Case Report Tabulations (CRTs) for an NDA Electronic Submission to the FDA
http://www2.sas.com/proceedings/sugi25/25/ad/25p031.pdf

www.allwalkin.blogspot.com
ABSTRACT:The Food and Drug Administration (FDA) now strongly encourages all new drug applications (NDAs) be submitted electronically. Electronic submissions could help FDA application reviewers scan documents efficiently and check analyses by manipulating the very datasets and code used to generate them.The potential saving in reviewer time and cost is enormous while improving the quality of oversight. In January 1999, the FDA released the Guidance for Industry: Providing Regulatory Submissions in Electronic Format – NDAs. As described, one important part of the application package is the case report tabulations (CRTs), now serving as the instrument for submitting datasets. CRTs are made up of two parts: first, datasets inSAS® transport file format and second, the accompanying documentation for the datasets. Herein, we briefly review the content and conversion of datasets to SAS transport file format, and then elaborate on the code that makes easy work of theaccompanying dataset documentation (in the form of data definition tables) using the SAS Output Delivery System (ODS). The intended audience is SAS programmers with an intermediate knowledge of the BASE product used under any operating system and who are involved in the biotechnology industries.


Where do you use MEdDra and WHO? Can you write a code? How do you use it?
What is MedDRA?
The Medical Dictionary for Regulatory Activities (MedDRA) has been developed as a pragmatic, clinically validated medical terminology with an emphasis on ease-of-use data entry, retrieval, analysis, and display, with a suitable balance between sensitivity and specificity, within the regulatory environment. MedDRA is applicable to all phases of drug development and the health effects of devices. By providing one source of medical terminology, MedDRA improves the effectiveness and transparency of medical product regulation worldwide.
MedDRA is used to report adverse event data from clinical trials, as well as post-marketing and pharmacovigilance.

What are the structural elements of the terminology in MedDRA?
The structural elements of the MedDRA terminology are as follows:


SOC (System Orgon Class) - Highest level of the terminology, and distinguished by anatomical or physiological system, etiology, or purpose
HLGT( High Level Group Term) – Subordinate to SOC, superordinate descriptor for one or more HLTs
HLT (High Level Term) – Subordinate to HLGT, superordinate descriptor for one or more PTs
PT (Preferred Term) – Represents a single medical concept
LLT (Lower Level Term) – Lowest level of the terminology, related to a single PT as a synonym, lexical variant, or quasi-synonym (Note: All PTs have an identical LLT).


In what format is MedDRA distributed?
MedDRA is distributed in sets of flat ASCII delimited files. There is a different set of files for each available language. The Czech translation is distributed in UTF-8 format. For detail information as to file names, data record scheme, and record layout, sees the MedDRA ASCII and Consecutive Files Documentation document, which can be downloaded from the MedDRA MSSO Web site. MedDRA is delivered in text file format. As of MedDRA Version 11.1, the total size of all ASCII files for the English version is 12,459KB.
Source: http://www.meddramsso.com/MSSOweb/faq/meddra.htm#What_is_MedDRA


THE WHODRUG DICTIONARY:
The WHODrug dictionary was started in 1968. The dictionary contains information on both single and multiple ingredient medications. Drugs are classified according to the type of drug name being entered, (i.e. proprietary/trade name, nonproprietary name, chemical name, etc.). At present, 52 countries submit medication data to the WHO Collaborating Center, which is responsible for the maintenance and distribution of the drug dictionary. Updates to the dictionary are offered four times per year.
Source: http://ssc.utexas.edu/docs/sashelp/sugi/24/Coders/p108-24.pdf


What do you mean by used Macro facility to produce weekly and monthly reports?
The SAS macro facility can do lot of things and especially it is used to…
• reduce code repetition
• increase control over program execution
• minimize manual intervention
• create modular code.
Source: http://www.gasug.org/papers/DemystifyingMacro_Fecht.pdf
And also Visit http://instruct1.cit.cornell.edu/courses/econ321/public_html/sasinfo/macro.html
to get more info about macro facility.


How did you validate table’s, listings and what are the other things you validated?
First, the output from the listing needs to be read into a SAS data set. Next, the validation results need to be calculated (you need to do this anyway) and then turned into a SAS data set with the same layout and properties as the one created from the original output. Last, SAS compares the original versus validation data sets by using PROC COMPARE. The results are concise, quick, accurate and 100% complete. We have to use the same procedure to validate the Tables.
Source: http://www.lexjansen.com/pharmasug/2001/proceed/techtech/tt02_guttadauro.pdf


We will also validate graphs made in SAS… but to do that we need to use SAS/GRAPH Network Visualization Workshop and using it we can validate graphs made with SAS automatically as well as manually.


Did you see anywhere that. Patient is randomized to one drug and the patient is given another drug? if you get in which population would you put that patient into?
I will consider that patient in the group of the drug that he was given. Before I do anything, I will make sure it is a data entry error or patient is actually given the other drug.

What would you do if you had to pool the data related to one parallel study and one cross over study?

www.allwalkin.blogspot.com
Say If you have a same subject in two groups taking two different drugs.. and If you had to pool these two groups how would you do it?


This situation arises when the study is a cross over design study. I would consider the same patient as two different patients of each treatment group.


What are the phases you are good at?
Phase-I,II and III.


How would you transpose dataset using data step?


Using Proc Transpose Procedure.

Proc transpose data=old out=new prefix=DATE;
var date;
by name;
run;


The prefix= option controls the names for the transposed variables (DATE1, DATE2, etc.) Without it, the names of the new variables would be COL1, COL2, etc.


Actually, proc transpose creates an extra variable, _NAME_, indicating the name of the transposed variable. _NAME_ has a value of DATE on both observations. To eliminate the extra variable, modify a portion of the proc statement:


out=new (drop=_name_);


The equivalent data step code using arrays could be:


data new (keep=name date1-date3);
set old;
by name;
array dates {3} date1-date3;
retain date1-date3;
if first.name then i=1;
else i + 1;
dates{i} = date;
if last.name;
run;


This program assumes that each name has exactly three observations. If a name had more, the program would generate an error message when hitting the fourth observation for that name. When i=4, this statement encounters an array subscript out of range:


dates{i} = date;
source: http://sugme.org/papers/paper.rtf


If some patient misses one lab how would you assign values for that missing values?? Can you write the code?
Same answer as the below question….


How do you deal with missing values?
Whenever SAS encounters an invalid or blank value in the file being read, the value is defined as missing. In all subsequent processes and output, the value is represented as a period (if the variable is numeric-valued) or is left blank (if the variable is character-valued).

In DATA step programming, use a period to refer to missing numeric values.
For example, to recode missing values in the variable A to the value 99, use the following statement:


IF a=. Then a=99;

www.allwalkin.blogspot.com
Use the MISSING statement to define certain characters to represent special missing values for all numeric variables. The special missing values can be any of the 26 letters of the alphabet, or an underscore. In the example below, the values 'a' and 'b' will be interpreted as special missing values for every numeric variable.


MISSING a b ;


Source; http://ssc.utexas.edu/consulting/answers/sas/sas33.html


Did you ever create efficacy tables?
Yes, I have created Efficacy tables. Efficacy tables are developed to get an the information about primary objectives/parameters of the study.


What is the primary and secondary end point in your last project?

Primary and secondary endpoints of the clinical trial conducted is given under the SAP. You can download the sample protocol as well as trial SAP from my blog (http://www.studysas.blogspot.com/ ) or else go to http://www.clinicaltrials.gov/ , and then type the name of pharmaceutical company, it will give you the list of clinical trials conducted by that company, if you just click on any one study, you will be able to see the primary and secondary objectives and all other details.




What are the stat procedures you used?
ANOVA, CATMOD, FREQ, GLM, LIFEREG, LIFETEST, LOGISTIC, NPAR1WAY, REG, TTEST, UNIVARIATE, MEANS, SUMMARY etc


Tell me something about proc mixed? (Sometimes they may ask you to write the syntax)Syntax: http://ftp.sas.com/samples/A55235
PROC MIXED is a generalization of the GLM procedure in the sense that PROC GLM fits standard linear models, and PROC MIXED fits the wider class of mixed linear models. Both procedures have similar CLASS, MODEL, CONTRAST, ESTIMATE, and LSMEANS statements, but their RANDOM and REPEATED statements differ (see the following paragraphs). Both procedures use the nonfull-rank model parameterization, although the sorting of classification levels can differ between the two. PROC MIXED computes only Type I -Type III tests of fixed effects, while PROC GLM offers Types I - IV. The RANDOM statement in PROC MIXED incorporates random effects constituting the vector in the mixed model. However, in PROC GLM, effects specified in the RANDOM statement are still treated as fixed as far as the model fit is concerned, and they serve only to produce corresponding expected mean squares.
Source: http://www.otago.ac.nz/sas/stat/chap41/sect4.htm


What would you do, if you have to use data step functions in macro definition? Can you use all the functions in data step in macro definition?
Yes.
www.allwalkin.blogspot.com

If I have a dataset with different subjid's and each subjid has many records? How can I obtain last but one record for each patient?
Syntax:


Proc sort data=old;
By subjid;
Run;


Data new;
Set old;
By subjid;
If first.subjid;
Run;






Or


proc sort data=old out=new nodupkey;
by subjid;
run;


Can you get some value of a data step variable to be used in any other program you do later in the same SAS session? How do you do that?
Use a macro… with a %PUT statement.


What would you do if you have to access previous records values in current record?
Using ampersand sign…. &var.


What is a p value? Why should u calculate that? What are the procedures you can use for that?
If the p-value were greater than 0.05, you would say that the group of independent variables does not show a statistically significant relationship with the dependent variable, or that the group of independent variables does not reliably predict the dependent variable. Note that this is an overall significance test assessing whether the group of independent variables, when used together reliably predicts the dependent variable, and does not address the ability of any of the particular independent variables to predict the dependent variable. Using the PROC FREQ, PROC ANOVA, PROC GLM and PROC TTEST we cal calculate the p-value.


What do you usually do with proc life test?
PROC LIFETEST is used to obtain Kaplan-Meier and life table survival estimates (and plots). Using a strata statement in Proc Lifetest, which compare survival estimates for different groups.


Can you get survival estimates with any other procedures?
PROC LIFEREG and PROC PHREG can also be used to get the survival estimates along with PROC LIFETEST.


Can you write a code to get the survival estimates?


proc lifetest data=data method=km outsurv=newdata;
time survival*status(0);
strata study;
run;


What is the difference between stratum and by statement in Proc Lifetest?
You can specify a BY statement with PROC LIFETEST to obtain separate analyses on observations in groups defined by the BY variables.


The BY statement is more efficient than the STRATA statement for defining strata in large data sets. However, if you use the BY statement to define strata, PROC LIFETEST does not pool over strata for testing the association of survival time with covariates nor does it test for homogeneity across the BY groups.


The STRATA statement indicates which variables determine strata levels for the computations.
The strata are formed according to the non-missing values of the designated strata variables. The MISSING option can be used to allow missing values as a valid stratum level.
Source: http://www.math.wpi.edu/saspdf/stat/chap37.pdf




Which procedure do you usually use to create reports?
Proc Report, proc Tabulate and Data _null_.

www.allwalkin.blogspot.com
What do you do, if you had to get the column names and some title in every page of your report when you create it using data_null_?


Give your data _null_ titles the "proc print" and "proc report" feel


The more you can make your "data _null_" behave like "proc print" or "proc report", when it comes to titles, the better. If the "byline" option is set then put out a dashed "byline". If not, then don't. Does your "by" variable have a label? If so, then your dashed byline should have the text of your variable label in it on the left of the equals sign. If the variable has no label then it should just be the variable name. If that's the way "proc report" or "proc print" does it then do it that way with your "data _null". Get it to interface with #byval and #byvar entries if they exist. Give people the feel that "data _null_" reporting is no different to using "proc print" or "proc report" and you will have less opposition to your "data _null_" reports. How you do this is already in those two pages. You are going to find yourself in a situation whereby you really must do the report using data _null_ but other people are not comfortable with it because they feel it is "too different" than using "proc report". The more you can give it the same feel, the more easily you can dip into "data _null_" when you have to without people worrying.
Source: http://www.datasavantconsulting.com/roland/nulltech.html


How do you use the macro which is created by some other people and which is in some other folder other than SAS?
With SAS Autocall library using the SAS Autos system.


Can you tell me something regarding the macro libraries?
Macro libraries are the libraries, which stores all the macros required for developing TLG’s of the clinical trial. These are very are necessary in controlling and managing the macros. With the help of a %INCLUDE statement; the stored macros in the macro library can be automatically called.


Can you show me how the efficacy table looks like?
http://studysas.blogspot.com/2008/08/tlf-samples.html


Can you show me how the safety table looks like?
http://studysas.blogspot.com/2008/08/tlf-samples.html


Did you use ODS?
Yes, I have used the ODS(Output Delivery System), which normally used to make the output from the Tables, Listings and graphs looks pretty. ODS creates the outputs in html, pdf and rtf formats.
General syntax:
Start the output with:


Ods output---format ;
SAS statements……………..
…..
Ods output-format close;


Your resume says you created HTML, RTF, PDF? Why you had to create three?? Can you tell me in specific why each form is used?
There are several ways of format to create the SAS output.


To publish or to place the output on the Internet we need to create the output in HTML format, by converting the output into HTML files. We generally create the SAS output in RTF, because the RTF can be opened in Word or other word processors. If we need to send the printable reports through email, we need to create the output in PDF. PDF output is also needed when we send documents required to file an NDA to FDA.




What are the graphs you created?
Survival estimate graphs.


What are the procedures you used to create them?


PROC LIFETEST, PROC GCHART, PROC GPLOT, PROC GREPLAY etc.


Can you generate statistics using Proc SQl?
Yes, we can generate the statistics like N, Mean, Median, Max, Min, STD & SUM using PROC SQL. But SQL procedure cannot calculate all the above statistics by default, as it is the case with PROC MEANS.


When do you prefer Proc SQl? Give me some situation?
The SQL procedure supports almost all the functions available in the DATA step for the creation of data as well as the manipulation of the data.
When we compare the same result, obtained from SQL and with the Data step, PROC SQL requires less code and, more importantly it requires less time to execute the code.


How do you delete a macro variable?
If the macro variable is stored in the library then it is a easy to delete it. Multiple variables may be deleted by placing the variable names in the DELETE statement:



Why do you have to use proc import and proc export wizards? Give me the situation?


Safety Datasets Examples:
Following 16 datasets are the examples for safety datasets.........


Adverse Events,


(Prior and) Concomitant Medications,


Comments,


Demographics,


Disposition/End of Study,


Drug Accountability,


ECG,


Exposure,


Inclusion and Exclusion Criteria,


Lab,


Medical History,


Physical Examination,


Protocol Violations,


Subject Characteristics,


Substance Use, and


Vital Signs.
www.allwalkin.blogspot.com

SAS Interview Questions Answers: General

WWW.ALLWALKIN.BLOGSPOT.COM
Under what circumstances would you code a SELECT construct instead of IF statements?

A: I think Select statement is used when you are using one condition to compare with several conditions like…….

Data exam;
Set exam;
select (pass);
when Physics gt 60;
when math gt 100;
when English eq 50;
otherwise fail;
run;

What is the one statement to set the criteria of data that can be coded in any step?
A) Options statement.

What is the effect of the OPTIONS statement ERRORS=1?

A) The –ERROR- variable ha a value of 1 if there is an error in the data for that observation and 0 if it is not.

What's the difference between VAR A1 - A4 and VAR A1 -- A4?

A) Refer the following link:
http://studysas.blogspot.com/2009/07/even-you-can-use-hash-and-double-dash.html


What do the SAS log messages "numeric values have been converted to character" mean? What are the implications?

A) It implies that automatic conversion took place to make character functions possible.

Why is a STOP statement needed for the POINT= option on a SET statement?
A) Because POINT= reads only the specified observations, SAS cannot detect an end-of-file condition as it would if the file were being read sequentially.

How do you control the number of observations and/or variables read or written?

A) FIRSTOBS and OBS option

Approximately what date is represented by the SAS date value of 730?
A) 31st December 1961

Identify statements whose placement in the DATA step is critical.
A) INPUT, DATA and RUN…
WWW.ALLWALKIN.BLOGSPOT.COM
Does SAS 'Translate' (compile) or does it 'Interpret'? Explain.
A) Compile

What does the RUN statement do?
A) When SAS editor looks at Run it starts compiling the data or proc step, if you have more than one data step or proc step or if you have a proc step. Following the data step then you can avoid the usage of the run statement.

Why is SAS considered self-documenting?
A) SAS is considered self documenting because during the compilation time it creates and stores all the information about the data set like the time and date of the data set creation later No. of the variables later labels all that kind of info inside the dataset and you can look at that info using proc contents procedure.

What are some good SAS programming practices for processing very large data sets?
A) Sort them once, can use firstobs = and obs = ,

What is the different between functions and PROCs that calculate thesame simple descriptive statistics?
A) Functions can used inside the data step and on the same data set but with proc's you can create a new data sets to output the results. May be more ...........

If you were told to create many records from one record, show how you would do this using arrays and with PROC TRANSPOSE?
A) I would use TRANSPOSE if the variables are less use arrays if the var are more ................. depends

What is a method for assigning first.VAR and last.VAR to the BY groupvariable on unsorted data?
A) In unsorted data you can't use First. or Last.

How do you debug and test your SAS programs?
A) First thing is look into Log for errors or warning or NOTE in some cases or use the debugger in SAS data step.

What other SAS features do you use for error trapping and datavalidation?
A) Check the Log and for data validation things like Proc Freq, Proc means or some times proc print to look how the data looks like ........
WWW.ALLWALKIN.BLOGSPOT.COM
How would you combine 3 or more tables with different structures?
A) I think sort them with common variables and use merge statement. I am not sure what you mean different structures.


Other questions:

What areas of SAS are you most interested in?
A) BASE, STAT, GRAPH, ETSBriefly

Describe 5 ways to do a "table lookup" in SAS.
A) Match Merging, Direct Access, Format Tables, Arrays, PROC SQL

What versions of SAS have you used (on which platforms)?
A) SAS 9.1.3,9.0, 8.2 in Windows and UNIX, SAS 7 and 6.12

What are some good SAS programming practices for processing very large data sets?
A) Sampling method using OBS option or subsetting, commenting the Lines, Use Data Null

What are some problems you might encounter in processing missing values? In Data steps? Arithmetic? Comparisons? Functions? Classifying data?
A) The result of any operation with missing value will result in missing value. Most SAS statistical procedures exclude observations with any missing variable values from an analysis.

How would you create a data set with 1 observation and 30 variables from a data set with 30 observations and 1 variable?
A) Using PROC TRANSPOSE

What is the different between functions and PROCs that calculate the same simple descriptive statistics?
A) Proc can be used with wider scope and the results can be sent to a different dataset. Functions usually affect the existing datasets.

If you were told to create many records from one record, show how you would do this using array and with PROC TRANSPOSE?

A) Declare array for number of variables in the record and then used Do loop Proc Transpose with VAR statement

What are _numeric_ and _character_ and what do they do?
A) Will either read or writes all numeric and character variables in dataset.

How would you create multiple observations from a single observation?
A) Using double Trailing @@

For what purpose would you use the RETAIN statement?
A) The retain statement is used to hold the values of variables across iterations of the data step. Normally, all variables in the data step are set to missing at the start of each iteration of the data step.What is the order of evaluation of the comparison operators: + - * / ** ()?A) (), **, *, /, +, -

How could you generate test data with no input data?
A) Using Data Null and put statement

How do you debug and test your SAS programs?
A) Using Obs=0 and systems options to trace the program execution in log.

What can you learn from the SAS log when debugging?
A) It will display the execution of whole program and the logic. It will also display the error with line number so that you can and edit the program.

What is the purpose of _error_?
A) It has only to values, which are 1 for error and 0 for no error.

How can you put a "trace" in your program?
A) By using ODS TRACE ON

How does SAS handle missing values in: assignment statements, functions, a merge, an update, sort order, formats, PROCs?
A) Missing values will be assigned as missing in Assignment statement. Sort order treats missing as second smallest followed by underscore.

How do you test for missing values?
A) Using Subset functions like IF then Else, Where and Select.

How are numeric and character missing values represented internally?
A) Character as Blank or “ and Numeric as.

Which date functions advances a date time or date/time value by a given interval?
A) INTNX.

In the flow of DATA step processing, what is the first action in a typical DATA Step?
A) When you submit a DATA step, SAS processes the DATA step and then creates a new SAS data set.( creation of input buffer and PDV)
Compilation PhaseWWW.ALLWALKIN.BLOGSPOT.COM
Execution Phase

What are SAS/ACCESS and SAS/CONNECT?
A) SAS/Access only process through the databases like Oracle, SQL-server, Ms-Access etc. SAS/Connect only use Server connection.

What is the one statement to set the criteria of data that can be coded in any step?
A) OPTIONS Statement, Label statement, Keep / Drop statements.

What is the purpose of using the N=PS option?
A) The N=PS option creates a buffer in memory which is large enough to store PAGESIZE (PS) lines and enables a page to be formatted randomly prior to it being printed.

What are the scrubbing procedures in SAS?
A) Proc Sort with nodupkey option, because it will eliminate the duplicate values.

What are the new features included in the new version of SAS i.e., SAS9.1.3?
A) The main advantage of version 9 is faster execution of applications and centralized access of data and support.

There are lots of changes has been made in the version 9 when we compared with the version 8. The following are the few:SAS version 9 supports Formats longer than 8 bytes & is not possible with version 8.
Length for Numeric format allowed in version 9 is 32 where as 8 in version 8.
Length for Character names in version 9 is 31 where as in version 8 is 32.
Length for numeric informat in version 9 is 31, 8 in version 8.
Length for character names is 30, 32 in version 8.3 new informats are available in version 9 to convert various date, time and datetime forms of data into a SAS date or SAS time.

·ANYDTDTEW. - Converts to a SAS date value ·ANYDTTMEW. - Converts to a SAS time value. ·ANYDTDTMW. -Converts to a SAS datetime value.CALL SYMPUTX Macro statement is added in the version 9 which creates a macro variable at execution time in the data step by ·

Trimming trailing blanks · Automatically converting numeric value to character.
New ODS option (COLUMN OPTION) is included to create a multiple columns in the output.

WHAT DIFFERRENCE DID YOU FIND AMONG VERSION 6 8 AND 9 OF SAS.
The SAS 9
A) Architecture is fundamentally different from any prior version of SAS. In the SAS 9 architecture, SAS relies on a new component, the Metadata Server, to provide an information layer between the programs and the data they access. Metadata, such as security permissions for SAS libraries and where the various SAS servers are running, are maintained in a common repository.
WWW.ALLWALKIN.BLOGSPOT.COM
What has been your most common programming mistake?
A) Missing semicolon and not checking log after submitting program,
Not using debugging techniques and not using Fsview option vigorously.

Name several ways to achieve efficiency in your program.
Efficiency and performance strategies can be classified into 5 different areas.
·CPU time
·Data Storage
· Elapsed time
· Input/Output
· Memory CPU Time and Elapsed Time- Base line measurements

Few Examples for efficiency violations:
Retaining unwanted datasets Not sub setting early to eliminate unwanted records.
Efficiency improving techniques:
A)
Using KEEP and DROP statements to retain necessary variables. Use macros for reducing the code.
Using IF-THEN/ELSE statements to process data programming.
Use SQL procedure to reduce number of programming steps.
Using of length statements to reduce the variable size for reducing the Data storage.
Use of Data _NULL_ steps for processing null data sets for Data storage.

What other SAS products have you used and consider yourself proficient in using?
B) A) Data _NULL_ statement, Proc Means, Proc Report, Proc tabulate, Proc freq and Proc print, Proc Univariate etc.

What is the significance of the 'OF' in X=SUM (OF a1-a4, a6, a9);
A) If don’t use the OF function it might not be interpreted as we expect. For example the function above calculates the sum of a1 minus a4 plus a6 and a9 and not the whole sum of a1 to a4 & a6 and a9. It is true for mean option also.

What do the PUT and INPUT functions do?
A) INPUT function converts character data values to numeric values.
PUT function converts numeric values to character values.EX: for INPUT: INPUT (source, informat)
For PUT: PUT (source, format)
Note that INPUT function requires INFORMAT and PUT function requires FORMAT.
If we omit the INPUT or the PUT function during the data conversion, SAS will detect the mismatched variables and will try an automatic character-to-numeric or numeric-to-character conversion. But sometimes this doesn’t work because $ sign prevents such conversion. Therefore it is always advisable to include INPUT and PUT functions in your programs when conversions occur.

Introduction to SAS Informats and Formats
WWW.ALLWALKIN.BLOGSPOT.COM
Which date function advances a date, time or datetime value by a given interval?
INTNX:
INTNX function advances a date, time, or datetime value by a given interval, and returns a date, time, or datetime value. Ex: INTNX(interval,start-from,number-of-increments,alignment)

INTCK: INTCK(interval,start-of-period,end-of-period) is an interval functioncounts the number of intervals between two give SAS dates, Time and/or datetime.

DATETIME () returns the current date and time of day.

DATDIF (sdate,edate,basis): returns the number of days between two dates.

What do the MOD and INT function do? What do the PAD and DIM functions do? MOD:
A) Modulo is a constant or numeric variable, the function returns the reminder after numeric value divided by modulo.

INT: It returns the integer portion of a numeric value truncating the decimal portion.

PAD: it pads each record with blanks so that all data lines have the same length. It is used in the INFILE statement. It is useful only when missing data occurs at the end of the record.

CATX: concatenate character strings, removes leading and trailing blanks and inserts separators.

SCAN: it returns a specified word from a character value. Scan function assigns a length of 200 to each target variable.

SUBSTR: extracts a sub string and replaces character values.Extraction of a substring: Middleinitial=substr(middlename,1,1); Replacing character values: substr (phone,1,3)=’433’; If SUBSTR function is on the left side of a statement, the function replaces the contents of the character variable.

TRIM: trims the trailing blanks from the character values.

SCAN vs. SUBSTR: SCAN extracts words within a value that is marked by delimiters. SUBSTR extracts a portion of the value by stating the specific location. It is best used when we know the exact position of the sub string to extract from a character value.

How might you use MOD and INT on numeric to mimic SUBSTR on character Strings?
A) The first argument to the MOD function is a numeric, the second is a non-zero numeric; the result is the remainder when the integer quotient of argument-1 is divided by argument-2. The INT function takes only one argument and returns the integer portion of an argument, truncating the decimal portion. Note that the argument can be an expression.

DATA NEW ;
A = 123456 ;
X = INT( A/1000 ) ;
Y = MOD( A, 1000 ) ;
Z = MOD( INT( A/100 ), 100 ) ;
PUT A= X= Y= Z= ;
RUN ;

Result:

A=123456
X=123
Y=456
Z=34

In ARRAY processing, what does the DIM function do?
A) DIM: It is used to return the number of elements in the array. When we use Dim function we would have to re –specify the stop value of an iterative DO statement if u change the dimension of the array.

How would you determine the number of missing or nonmissing values in computations?
A) To determine the number of missing values that are excluded in a computation, use the NMISS function.

data _null_;
m = . ;
y = 4 ;
z = 0 ;
N = N(m , y, z);
NMISS = NMISS (m , y, z);
run;

The above program results in N = 2 (Number of non missing values) and NMISS = 1 (number of missing values).

Do you need to know if there are any missing values?
A) Just use: missing_values=MISSING(field1,field2,field3);
This function simply returns 0 if there aren't any or 1 if there are missing values.If you need to know how many missing values you have then use num_missing=NMISS(field1,field2,field3);

You can also find the number of non-missing values with non_missing=N (field1,field2,field3);

What is the difference between: x=a+b+c+d; and x=SUM (of a, b, c ,d);?
A) Is anyone wondering why you wouldn’t just use total=field1+field2+field3;

First, how do you want missing values handled?
The SUM function returns the sum of non-missing values. If you choose addition, you will get a missing value for the result if any of the fields are missing. Which one is appropriate depends upon your needs.However, there is an advantage to use the SUM function even if you want the results to be missing. If you have more than a couple fields, you can often use shortcuts in writing the field names If your fields are not numbered sequentially but are stored in the program data vector together then you can use: total=SUM(of fielda--zfield); Just make sure you remember the “of” and the double dashes or your code will run but you won’t get your intended results. Mean is another function where the function will calculate differently than the writing out the formula if you have missing values.There is a field containing a date. It needs to be displayed in the format "ddmonyy" if it's before 1975, "dd mon ccyy" if it's after 1985, and as 'Disco Years' if it's between 1975 and 1985.

How would you accomplish this in data step code?
Using only PROC FORMAT.

data new ;
input date ddmmyy10.;
cards;
01/05/1955
01/09/1970
01/12/1975
19/10/1979
25/10/1982
10/10/1988
27/12/1991
;
run;

proc format ;
value dat low-'01jan1975'd=ddmmyy10.'01jan1975'd-'01JAN1985'd="Disco Years"'
01JAN1985'd-high=date9.;
run;

proc print;
format date dat. ;
run;

In the following DATA step, what is needed for 'fraction' to print to the log?
data _null_;
x=1/3;
if x=.3333 then put 'fraction';
run;

What is the difference between calculating the 'mean' using the mean function and PROC MEANS?
A) By default Proc Means calculate the summary statistics like N, Mean, Std deviation, Minimum and maximum, Where as Mean function compute only the mean values.
WWW.ALLWALKIN.BLOGSPOT.COM
What are some differences between PROC SUMMARY and PROC MEANS?
Proc means by default give you the output in the output window and you can stop this by the option NOPRINT and can take the output in the separate file by the statement OUTPUTOUT= , But, proc summary doesn't give the default output, we have to explicitly give the output statement and then print the data by giving PRINT option to see the result.

What is a problem with merging two data sets that have variables with the same name but different data?
A) Understanding the basic algorithm of MERGE will help you understand how the stepProcesses. There are still a few common scenarios whose results sometimes catch users off guard. Here are a few of the most frequent 'gotchas':

1- BY variables has different lengthsIt is possible to perform a MERGE when the lengths of the BY variables are different,But if the data set with the shorter version is listed first on the MERGE statement, theShorter length will be used for the length of the BY variable during the merge. Due to this shorter length, truncation occurs and unintended combinations could result.In Version 8, a warning is issued to point out this data integrity risk. The warning will be issued regardless of which data set is listed first:WARNING: Multiple lengths were specified for the BY variable name by input data sets.This may cause unexpected results. Truncation can be avoided by naming the data set with the longest length for the BY variable first on the MERGE statement, but the warning message is still issued. To prevent the warning, ensure the BY variables have the same length prior to combining them in the MERGE step with PROC CONTENTS. You can change the variable length with either a LENGTH statement in the merge DATA step prior to the MERGE statement, or by recreating the data sets to have identical lengths for the BY variables.Note: When doing MERGE we should not have MERGE and IF-THEN statement in one data step if the IF-THEN statement involves two variables that come from two different merging data sets. If it is not completely clear when MERGE and IF-THEN can be used in one data step and when it should not be, then it is best to simply always separate them in different data step. By following the above recommendation, it will ensure an error-free merge result.

Which data set is the controlling data set in the MERGE statement?
A) Dataset having the less number of observations control the data set in the merge statement.

How do the IN= variables improve the capability of a MERGE?
A) The IN=variablesWhat if you want to keep in the output data set of a merge only the matches (only those observations to which both input data sets contribute)? SAS will set up for you special temporary variables, called the "IN=" variables, so that you can do this and more. Here's what you have to do: signal to SAS on the MERGE statement that you need the IN= variables for the input data set(s) use the IN= variables in the data step appropriately, So to keep only the matches in the match-merge above, ask for the IN= variables and use them:data three;merge one(in=x) two(in=y); /* x & y are your choices of names */by id; /* for the IN= variables for data */if x=1 and y=1; /* sets one and two respectively */run;
WWW.ALLWALKIN.BLOGSPOT.COM
What techniques and/or PROCs do you use for tables?
A) Proc Freq, Proc univariate, Proc Tabulate & Proc Report.

Do you prefer PROC REPORT or PROC TABULATE? Why?
A) I prefer to use Proc report until I have to create cross tabulation tables, because, It gives me so many options to modify the look up of my table, (ex: Width option, by this we can change the width of each column in the table) Where as Proc tabulate unable to produce some of the things in my table. Ex: tabulate doesn’t produce n (%) in the desirable format.

How experienced are you with customized reporting and use of DATA _NULL_ features?
A) I have very good experience in creating customized reports as well as with Data _NULL_ step. It’s a Data step that generates a report without creating the dataset there by development time can be saved. The other advantages of Data NULL is when we submit, if there is any compilation error is there in the statement which can be detected and written to the log there by error can be detected by checking the log after submitting it. It is also used to create the macro variables in the data set.

What is the difference between nodup and nodupkey options?
A) NODUP compares all the variables in our dataset while NODUPKEY compares just the BY variables.

What is the difference between compiler and interpreter?
Give any one example (software product) that act as an interpreter?
A) Both are similar as they achieve similar purposes, but inherently different as to how they achieve that purpose. The interpreter translates instructions one at a time, and then executes those instructions immediately. Compiled code takes programs (source) written in SAS programming language, and then ultimately translates it into object code or machine language. Compiled code does the work much more efficiently, because it produces a complete machine language program, which can then be executed.

Code the table’s statement for a single level frequency?
A) Proc freq data=lib.dataset;
table var;*here you can mention single variable of multiple variables seperated by space to get single frequency;
run;

What is the main difference between rename and label?
A) 1. Label is global and rename is local i.e., label statement can be used either in proc or data step where as rename should be used only in data step. 2. If we rename a variable, old name will be lost but if we label a variable its short name (old name) exists along with its descriptive name.WWW.ALLWALKIN.BLOGSPOT.COM

What is Enterprise Guide? What is the use of it?
A) It is an approach to import text files with SAS (It comes free with Base SAS version 9.0)

What other SAS features do you use for error trapping and data validation?
What are the validation tools in SAS?
A) For dataset: Data set name/debugData set: name/stmtchk
For macros: Options:mprint mlogic symbolgen.

How can you put a "trace" in your program?
A) ODS Trace ON, ODS Trace OFF the trace records.

How would you code a merge that will keep only the observations that have matches from both data sets?


Using "IN" variable option. Look at the following example.

data three;
merge one(in=x) two(in=y);
by id;
if x=1 and y=1;
run;

*or;

data three;
merge one(in=x) two(in=y);
by id;
if x and y;
run;


What are input dataset and output dataset options?
A) Input data set options are obs, firstobs, where, in output data set options compress, reuse.Both input and output dataset options include keep, drop, rename, obs, first obs.

How can u create zero observation dataset?
A) Creating a data set by using the like clause.ex: proc sql;create table latha.emp like oracle.emp;quit;In this the like clause triggers the existing table structure to be copied to the new table. using this method result in the creation of an empty table.

Have you ever-linked SAS code, If so, describe the link and any required statements used to either process the code or the step itself?

A) In the editor window we write%include 'path of the sas file';run;if it is with non-windowing environment no need to give run statement.
WWW.ALLWALKIN.BLOGSPOT.COM
How can u import .CSV file in to SAS? tell Syntax?
A) To create CSV file, we have to open notepad, then, declare the variables.

proc import datafile='E:\age.csv'
out=sarath dbms=csv replace;
getnames=yes;
run;

What is the use of Proc SQl?
A) PROC SQL is a powerful tool in SAS, which combines the functionality of data and proc steps. PROC SQL can sort, summarize, subset, join (merge), and concatenate datasets, create new variables, and print the results or create a new dataset all in one step! PROC SQL uses fewer resources when compard to that of data and proc steps. To join files in PROC SQL it does not require to sort the data prior to merging, which is must, is data merge.

What is SAS GRAPH?
A) SAS/GRAPH software creates and delivers accurate, high-impact visuals that enable decision makers to gain a quick understanding of critical business issues.

Why is a STOP statement needed for the point=option on a SET statement?
A) When you use the POINT= option, you must include a STOP statement to stop DATA step processing, programming logic that checks for an invalid value of the POINT= variable, or Both. Because POINT= reads only those observations that are specified in the DO statement, SAScannot read an end-of-file indicator as it would if the file were being read sequentially. Because reading an end-of-file indicator ends a DATA step automatically, failure to substitute another means of ending the DATA step when you use POINT= can cause the DATA step to go into a continuous loop.

WWW.ALLWALKIN.BLOGSPOT.COM

SAS interview questions:Macros

SAS interview questions:Macros

WWW.ALLWALKIN.BLOGSPOT.COM
1. Have you used macros? For what purpose you have used?
Yes I have, I used macros in creating analysis datasets and tables where it is necessary to make a small change through out the program and where it is necessary to use the code again and again.

2. How would you invoke a macro?
After I have defined a macro I can invoke it by adding the percent sign prefix to its name like this: % macro name a semicolon is not required when invoking a macro, though adding one generally does no harm.

3. How can you create a macro variable with in data step?
with CALL SYMPUT

4. How would you identify a macro variable?
with Ampersand (&) sign

5. How would you define the end of a macro?
The end of the macro is defined by %Mend Statement

6. For what purposes have you used SAS macros?
If we want use a program step for executing to execute the same Proc step on multiple data sets. We can accomplish repetitive tasks quickly and efficiently. A macro program can be reused many times. Parameters passed to the macro program customize the results without having to change the code within the macro program. Macros in SAS make a small change in the program and have SAS echo that change thought that program.

7. What is the difference between %LOCAL and %GLOBAL?
% Local is a macro variable defined inside a macro.%Global is a macro variable defined in open code (outside the macro or can use anywhere).

8. How long can a macro variable be? A token?
A component of SAS known as the word scanner breaks the program text into fundamental units called tokens.
· Tokens are passed on demand to the compiler.
· The compiler then requests token until it receives a semicolon.
· Then the compiler performs the syntax check on the statement.

9. If you use a SYMPUT in a DATA step, when and where can you use the macro variable?
The macro variable created by the CALL SYMPUT routine cannot be used in the same datastep in which it got created. Other than that we can use the macro variable at any time..

10. What do you code to create a macro? End one?
We create a macro with %MACRO statement and end a macro with %MEND statemnt.

11. What is the difference between %PUT and SYMBOLGEN?
%PUT is used to display user defined messages on log window after execution of a program where as % SYMBOLGEN is used to print the value of a macro variable resolved, in log window.

12. How do you add a number to a macro variable?
Using %eval function or %sysevalf function if the number is a floating number.

13. Can you execute a macro within a macro? Describe.
Yes, Such macros are called nested macros. They can be obtained by using symget and call symput macros.

14. If you need the value of a variable rather than the variable itself what would you use to load the value to a macro variable?
If we need a value of a macro variable then we must define it in such terms so that we can call them everywhere in the program. Define it as Global. There are different ways of assigning a global variable. Simplest method is %LET.

Ex:
A, is macro variable. Use following statement to assign the value of a rather than the variable itself
%Let A=xyz; %put x="&A";

This will assign "xyz" to x, not the variable xyz to x.

15. Can you execute macro within another macro? If so, how would SAS know where the current macro ended and the new one began?

Yes, I can execute macro within a macro, we call it as nesting of macros, which is allowed.
Every macro's beginning is identified the keyword %macro and end with %mend.

16. How are parameters passed to a macro?
A macro variable defined in parentheses in a %MACRO statement is a macro parameter. Macro parameters allow you to pass information into a macro.

Here is a simple example:

%macro plot(yvar= ,xvar= );
proc plot;
plot &yvar*&xvar;
run;
%mend plot;
%plot(age,sex)

17. How would you code a macro statement to produce information on the SAS log?
This statement can be coded anywhere?
WWW.ALLWALKIN.BLOGSPOT.COM
OPTIONS MPRINT MLOGIC MERROR SYMBOLGEN;

18. How we can call macros with in data step?

We can call the macro with
CALL SYMPUT,
Proc SQL ,
%LET statement. and macro parameters.

19. Tell me about call symput?

CALL SYMPUT takes a value from a data step and assigns it to a macro variable. I can then use this macro variable in later steps. To assign a value to a single macro variable,
WWW.ALLWALKIN.BLOGSPOT.COM
I use CALL SYMPUT with this general form:

CALL SYMPUT (“macro-variable-name”, value);

Where macro-variable-name, enclosed in quotation marks, is the name of a macro variable, and value is the value I want to assign to that macro variable. Value can be the name of a variable whose value SAS will use, or it can be a constant value enclosed quotation marks.

more abt callsymput routine can be read at:
http://studysas.blogspot.com/2009/08/call-symput-vs-call-symputx.html


CALL SYMPUT is often used in if-then statements such as this:

If age>=18 then call symput (“status”,”adult”);
else call symput (“status”,”minor”);

These statements create a macro variable named &status and assign to it a value of either adult or minor depending on the variable age.Caution: We cannot create a macro variable with CALL SYMPUT and use it in the same data step because SAS does not assign a value to the macro variable until the data step executes. Data steps executes when SAS encounters a step boundary such as a subsequent data, proc, or run statement.

20. Tell me about % include and % eval?
The %include statement, despite its percent sign, is not a macro statement and is always executed in SAS, though it can be conditionally executed in a macro.It can be used to setting up a macro library. But this is a least approach.

The use of %include does not actually set up a library. The %include statement points to a file and when it executed the indicated file (be it a full program, macro definition, or a statement fragment) is inserted into the calling program at the location of the call.

When using the %include building a macro library, the included file will usually contain one or more macro definitions.%EVAL is a widely used yet frequently misunderstood SAS(r) macro language function due to its seemingly simple form.

However, when its actual argument is a complex macro expression interlaced with special characters, mixed arithmetic and logical operators, or macro quotation functions, its usage and result become elusive and problematic. %IF condition in macro is evaluated by %eval, to reduce it to true or false.

21. Describe the ways in which you can create macro variables?
There are the 5 ways to create macro variables:

%Let
%Global
Call Symput
Proc SQl into clause
Macro Parameters.

22. Tell me more about the parameters in macro?
Parameters are macro variables whose value you set when you invoke a macro. To add the parameters to a macro, you simply name the macro vars names in parenthesis in the %macro statement.

Syntax:

%MACRO macro-name (parameter-1= , parameter-2= , ……parameter-n = );
macro-text%;
%MEND macro-name;
%macro_name(par1,par2,....parn);

23. What is the maximum length of the macro variable?
32 characters long.

24. Automatic variables for macro?
Every time we invoke SAS, the macro processor automatically creates certain macro var. eg: &sysdate &sysday.

25. What system options would you use to help debug a macro?
The SAS System offers users a number of useful system options to help debug macro issues and problems. The results associated with using macro options are automatically displayed on the SAS Log.
WWW.ALLWALKIN.BLOGSPOT.COM
Specific options related to macro debugging appear in alphabetical order in the table below:

MEMRPT: Specifies that memory usage statistics be displayed on the SAS Log.
MERROR: SAS will issue warning if we invoke a macro that SAS didn’t find. Presents Warning Messages when there are misspellings or when an undefined macro is called.
SERROR: SAS will issue warning if we use a macro variable that SAS can’t find.
MLOGIC: SAS prints details about the execution of the macros in the log.
MPRINT: Displays SAS statements generated by macro execution are traced on the SAS Log for debugging purposes.
SYMBOLGEN: SAS prints the value of macro variables in log and also displays text from expanding macro variables to the SAS Log.

27. What are SYMGET and SYMPUT?
SYMPUT puts the value from a dataset into a macro variable where as
SYMGET gets the value from the macro variable to the dataset.

28. What are the macros you have used in your programs?
Used macros for various puposes, few of them are..

1) Macros written to determine the list of variables in a dataset:

%macro varlist (dsn);
proc contents data = &dsn out = cont noprint;
run;
%mend;
%varlist(demo);

proc sql noprint;
select distinct name into:varname1-:varname22 from cont;
quit;

%do i =1 %to &sqlobs;
%put &i &&varname&i;
%end;
%mend varlist;
%varlist(adverse)

2) Distribution or Missing / Non-Missing Values
%macro missrep (dsn, vars=_numeric_);

proc freq data=&dsn.;
tables &vars. / missing;
format _character_ $missf. _numeric_ missf.;
title1 ‘Distribution or Missing / Non-Missing Values’;
run;
%mend missrep;
%missrep(study.demog, vars=age gender bdate);

3) Written macros for sorting common variables in various datasets
%macro sortit (datasetname,pid,inverstigator);

PROC SORT DATA = &DATASETNAME;
BY &PID &INVESTIGATOR;
%mend sortit;

%sortit (ae,001,sarath);

4) Macros written to split the number of observations in a dataset

%macro split (dsnorig, dsnsplit1, dsnsplit2, obs1);
data &dsnsplit1;
set &dsnorig (obs = &obs1);
run;
data &dsnsplit2;
set &dsnorig (firstobs = %eval(&obs1 + 1));
run;
%mend split;
%split(sasuser.admit,admit4,admit5,2)

29. What is auto call macro and how to create a auto call macro? What is the use of it? How to use it in SAS with macros?

SAS Enables the user to call macros that have been stored as SAS programs.

The auto call macro facility allows users to access the same macro code from multiple SAS programs. Rather than having the same macro code for in each program where the code is required, with an autocall macro, the code is in one location. This permits faster updates and better consistency across all the programs.Macro set-up:The fist step is to set-up a program that contains a macro, desired to be used in multiple programs. Although the program may contain other macros and/or open code, it is advised to include only one macro.

Set MAUTOSOURSE and SASAUTOS:
Before one can use the autocall macro within a SAS program, The MAUTOSOURSE option must be set open and the SASAUTOS option should be assigned. The MAUTOSOURSE option indicates to SAS that the autocall facility is to be activated. The SASAUTOS option tells SAS where to look for the macros.
WWW.ALLWALKIN.BLOGSPOT.COM
For ex: sasauto=’g:\busmeas\internal\macro\’;

30. Why and How to Use %PUT Statement:

%Put statement is similar to the PUT statement in data step, What it does is it writes text and values of macro variable after execution to the SAS System LOG. If you want to make sure your macro variable resolves as expected, you can make sure it with %PUT statement.

Unique advantage of %PUT over PUT is …you can use %PUT outside the data step whereas you can’t with PUT.

How to use %PUT:

%let program=AE;
%put program Name here as &program;

Above %put statement resolves to … %put Program Name here as AE;

What can you do with %PUT:

Numerous options are available for the %PUT statement.

%PUT _all_:
It prints all macro variables in the log that are available in all environments (global, local, user and automatic).

%PUT _automatic_:
It prints all the SAS defined automatic macro variables in the log. (ex: &sysdate, &systime ,%sysdsn, %syserr etc)

%PUT _global_:
It prints macro variables that are created by the user and available in all environments.

%PUT _local_:
It prints macro variables that are created by the user and available only in the local environment. (couldn’t be able use those macro variables outside the particular data step)

%PUT _user_:
It prints macro variables that are created by the user in each environment.
31) How to know how &&var&i or &&dsn&i resolves?
It is very confusing some times to tell rightaway how &&var&i or &&dsn&i get resolved...
but here is the simple technique you can use to know....
ex: We generally use &&var&i or &&dsn&i these macro variables when we are using a %do loop... to execute same code n number of times.
You have a dataset and it has 5 variables ... Patid sex age ethnic race wt ht;
%macro doit;
%do i=1 %to &nvars;
&&var&i
%end;
%mend doit;
So if the nvars value is 7, then the loop creates a macro variable list of
&var1 &var2 &var3 &var4 &var5 &var6 &var7
which further get resolved to
patid sex age ethnic race wt ht
You can always use Macro debugging option SYMBOLGEN to see how each macro variable got resolved....
WWW.ALLWALKIN.BLOGSPOT.COM

SAS CLINICAL INTERVIEW FAQ'S

1www.allwalkin.blogspot.com
Paper MA08
HIRE Power in the Pharmaceutical Industry
Neil Howard, Independent Consultant, Basking Ridge, NJ
Abstract
"The best thing you can do for your competition is to select poor quality staff." VP Recruitment, Microsoft
You are interviewing a candidate in a sharp navy suit, with an impressive resume and ten years of SAS experience. But, how
do you tell if this ten years of experience is really ten years, or the same year over and over again? If, indeed, past behavior or
past job performance is the best indicator of future performance, how is the SAS community probing for the facts? What are
our assessment criteria?
The author developed a survey tool administered to selected SAS programmers, analysts, trainers, human resource experts,
and managers as a reality check into our performance as interviewers and our experience as interviewees. What techniques
are being used to interview and assess SAS talent specifically?
This paper explores such hiring issues as: identifying resume red flags, conducting useful phone interviews, structuring general
face-to-face interviews, “measuring” intangibles, proficiency testing, and code walk-throughs. The paper includes a collection
of technical SAS questions gathered from past SUGI papers, SAS users and SAS-L contributors; and discusses the
development of probing technical questions, metrics, and standards than encompass typical SAS programming as well as
programming within the Pharmaceutical industry in an FDA regulated environment.
The Survey Questionnaire
Disclaimer: The author is not an expert in survey design or analysis!
This topic was driven purely by my own curiosity and a desire to gather information on effective interviewing within the SAS
community. In response to a user request for technical questions for interviews on SAS-L last year, participants submitted
their favorites. The nature of the responses was inspiring. SAS programmers are at a premium; the range of talent is
staggering. Yet how are we cherry-picking for our very specific needs given the kinds of questions we’re asking?
Managers have complained about the lack of information available to aid them with the technical SAS component of an
interview. And, I have heard comments regarding an overall ineffectiveness in assessing SAS skill level. Hence, some advice
from the users themselves, with the caveat that the technical interview be conducted by technical staff who understand the
content and can evaluate the answers properly.
The survey questions and categories were derived from: 1) literature on hiring and interviewing, and 2) practical experience.
The section on SAS specifics was based on the input of experienced SAS programmers, managers and SAS Institute
instructors.
The survey tool itself was critiqued by several experienced SAS users and/or managers before it was administered. I should
explain that the SAS questions, in particular, reflected the importance I place on understanding the internals of SAS (compile,
execute, PDV), debugging and testing, and DATA step processing.
My survey didn’t probe beyond essential through advanced BASE SAS skills and did not solicit information on evaluating
statisticians, advanced macro programmers, and new product specialists (SAS/IntrNet, mining, warehousing, etc.) were not
addressed. The survey did not include operating systems and interface issues. Open-ended questions probing for problemsolving
skills and behavorial characteristics were not stressed in the survey but are addressed as a supplemental topic here.
Most reviewers felt the sections (as outlined below) were well covered. And the survey was sufficient enough to elicit good
feedback and generate discussion. The results indicated how differently everyone approaches the interview process and
defines a successful hire or productive programmer.
Additional questions on metrics and coding standards were added tangentially just to test the waters. The general flavor of the
feedback given warrants presentation. And the overall lack of feedback indicates these are touchy, and often untouched,
areas.
2
Survey Results: The Resume
“The closest to perfection a person ever becomes is when he fills out a job application form.” Stanley J. Randall
Resumes are like mirrors in a fun house and learning to decipher them is an art. “Providing support to Apollo scientists” may
mean “coffee gopher”. Ten years programming in SAS for one company may mean the same year over and over again or
represent tremendous growth from running ad hoc reports to large systems design and data warehousing.
Technical inaccuracies in the resume were red flags for respondents: misspellings of hardware or software products, misuse of
jargon, and misstatements in the description of applications indicate misunderstanding of usage and capabilities. Other red flag
issues for respondents included gaps in employment history, fluff descriptions instead of concrete detail, and the inability to
substantiate the experience claimed.
Where a given job description calls for client management where communications and presentation skills are paramount, the
actual appearance and format of the resume is important to the interviewers. They look for good organization and effective
explanation of technical issues. This was also important when documentation would be a large component of the job.
In general, the respondents expect a neat, accurate resume that demonstrates technical growth, career advancement,
evidence of accomplishments, appropriate descriptions of technical material, and a clear understanding of technical issues (in
gradients, depending on the nature of the position).
Survey Results: The Phone Interview
A telephone call is worth a thousand objections.
Most respondents reported using a telephone interview administered by technical staff to pre-screen applicants. They are
looking for the essentials: number of years experience, attitude, and communications skill (telephone manner). Additionally,
they wanted to determine a candidate’s likes and dislikes.
Though stating it in many different ways, the respondents were looking for “chemistry” and to get a “sense of the person”. Turnoffs
in a telephone interview are lack of enthusiasm, bad mouthing former employers, blaming and excusing, giving affirmative
answers to all questions without being able to substantiate the answer, and acting like a know-it-all.
Survey Results: The General Interview
The form and content of the face-to-face interview varies among the respondents. In general, there is a specific job
description; several members of the technical team get a chance to meet the candidate. The team leads or managers do the
reference checks, not non-technical human resource personnel. Interestingly, most respondents reported they had never been
trained in interviewing techniques or technical interviewing.
The SAS skills of the candidate are evaluated primarily through: 1) standard (routinely used by the group) or ad hoc technical
questions (driven by the resume), and 2) code samples. Most respondents had never used or received a SAS proficiency test.
Even fewer had devised such a skills test for in-house use.
Since past performance is the best indicator of future performance, it is important to get this part right. Clearly, the most
popular tool among the respondents is sample code; and most respondents walk through the code with the applicant to
determine if: 1) they wrote the code, 2) they understand it (didn’t copy it or use a shell program), 3) they can defend it, 4) they
can explain why certain design methods and coding styles were used, and 5) they can explain how they know the program
produces the intended results. Coding standards and evidence of adherence to SOPs are a plus in sample code.
Not all programmers are willing to bring code samples out of respect for their employer’s or client’s confidentiality. And there is
often reuse code in large shop programs. Some fear their code will be copied. It was agreed that serious candidates may
want to write some generic programs that demonstrate his capabilities.
Typical probing questions posed by the respondents detailed a problem requiring that the candidates demonstrate their
approach to problem solving and how they apply analytical skills. The interviewers are not looking for a right or wrong answer,
rather a demonstration of how the candidate thinks and pursues solutions, what happens when he or she gets stuck or finds
problems with the data. (See Behavioral Interviewing, below.)
3
Survey Results: The SAS-Specific Interview
The responding interviewers typically ask questions that demonstrate an understanding of:
◊ data step internals (compile, execute, PDV)
◊ read/write of SAS and non-SAS data
◊ declaratives
◊ arrays
◊ fuzzy merges (IN= variables, BY groups)
◊ data _null_
Fewer asked questions about:
◊ modularity
◊ macrowww.allwalkin.blogspot.com
◊ PROC vs. DATA step solutions
◊ innovative/inventive techniques/solutions.
Almost all of the respondents asked candidates to describe in detail a specific programming task they accomplished or explain
a complex macro application. The objective is to find out what the programmer knows and if they know how to explain what
they know.
Few respondents asked about testing, validation and debugging techniques. Those who did were fierce on the issues.
Debugging and testing constitutes as much as 85% of what is considered “programming”. Knowledge of syntax is just a small
part; usage and understanding of functionality is important; experience is critical, and knowing how to get questions answered
is even more important.
A programmer should be able to demonstrate that he understands how to gather requirements, program from them – mapping
to code, and validate the results, using special features of the SAS system. Probe for their habits, methods, and attitude
regarding deliverables and how they feel about program “checkers” or QC review or team walk-throughs. It is a definite plus if
a candidate expresses a sincere interest in understanding the actual data or presents some evidence of having done so in the
past.
Appendix A is a categorized collection of technical SAS interview questions obtained from SAS users, SAS-L contributions,
and various web sites.
Interviews tailored to Pharmaceutical clinical and statistical programming
When the original survey was done, it did not include questions regarding situations geared specifically toward SAS
programming in the pharmaceutical industry. However, I have gained significant hands-on experience with hiring clinical or
statistical SAS programmers. While most of the topics discussed are applicable, there are issues specific to derived datasets,
tables, listings, and figures/graphics programming for analyzing clinical trials data.
First, evaluate and answer the following questions regarding the needs of your organization:
◊ How much experience with the industry do you feel you need?
◊ Do you need someone with a background in statistics?
◊ What are you willing to train? Do you need someone to hit the ground running?
◊ Would you prefer more SAS programming experience or pharmaceutical experience? Or both?
◊ Do you have good training available for:
o Drug development
o Clinical trials data analysis
o Working with statisticians
o Working in an FDA regulated environment
◊ OR, do you have better training available for SAS, macros, Oracle Clinical, or other tools?
◊ What are your trade-offs?
Next, consider specific requirements for the position; write a position description:
♦ Statistics background?
4
♦ Certain number of years SAS and/or pharma experience
♦ Interpersonal, client, and communication skills
♦ Attention to detail
♦ Ability to work in fast-paced, team-oriented environment
♦ Ability to deal with criticism, double-programming, validation.
♦ Experience with TLFs
♦ Derived dataset specifications
♦ Derived datasets
♦ Therapeutic area expertise
♦ Phase I, II, III, IV experience
♦ Writing macros
♦ Generalized programs
♦ Ability to test and document.
Then, think outside the box:
◊ Evidence of interest in the data
◊ Problem-solving abilities
◊ Going beyond the mechanical
◊ Ability to “notice” things, evaluate the output
◊ Ability to convey technical information to both technical and non-technical people
◊ “Fit” with the team
◊ Experience working with statisticians
◊ Appreciation for working in an FDA regulated environment
◊ Understanding of 21 CFR Part 11
◊ Familiarity with CDISC.
Other things to looks for:
◊ Understanding the biostat process the work in:
♦ SOPS,
♦ Guidelines, checklists, working practices
♦ Training
◊ Exposure to:
♦ Protocol and SAP development
♦ CRF and database design
♦ Standardization efforts
Survey Results: Intangibles
Although hiring is not all about “gut feelings”, a majority admitted it is a part of the equation. Interviewers are looking for certain
personality traits. Not all great programmers are computer science majors; many have music, social or physical science
backgrounds and pursue challenging methodical, analytical activities like puzzles, games, etc. Companies are looking for
professionalism tinged with a sense of humor, curiosity, self-motivation, flexibility, and creativity.www.allwalkin.blogspot.com
Important, too, is the ability to work in a team environment effectively, handle pressure, work against deadlines, and
communicate effectively with clients. Respondents often ask for descriptions of business relationships with peers, clients, or
bosses. They prefer candidates who aren’t judgmental and don’t act like know-it-alls. Although some hire for potential, most
prefer highly motivated, interested employees. Asking good questions reflects well on an interviewee.
Could it be as simple as this? A web site spouting hiring wisdom has Kevin D. Weeks identifying the most common
characteristics among superlative programmers to be:
⇒ Preference for cats as pets
⇒ Sense of the absurd
⇒ Fan of science fiction
⇒ Creativity
⇒ Knack for puns
Programmers are human cats: night creatures, independent, they prefer to be left alone except when they want attention,
they’re elegant (with code) and managing programmers has been likened to herding cats.
5
Programmers have a highly developed sense of the absurd to tolerate absurd schedules, absurd requirements, and absurd
hours. They love science fiction and technology, especially technology that doesn't yet exist -- how better to handle the
constancy of change.
Many programmers are also artists: musicians, painters, or photographers, not because programming and artistic endeavors
require great creativity, but because programming is more like painting than engineering. And when they make mistakes, they
can code right over them.
Programming is about using language to accomplish something and programmers have a highly evolved appreciation of how a
language can be manipulated to specific ends. Puns are ways of both displaying a mastery of language and honing it.
Survey Results: Metrics
A few questions regarding programming metrics and measures of productivity were included in the survey to see if anyone
would rise to the bait. It is clear from the few answers that it is hard to quantify and qualify what programmers and analysts do
to the satisfaction of bean counters. It is also clear from the lack of response that this is a touchy, often untouched, subject.
The managers among the respondents are often asked to devise metrics for their group. Non-technical senior management is
used to seeing numbers. “Happy clients” won’t satisfy this mindset; but it is equally difficult to apply metrics. Productivity
measures most often mentioned are timeliness of deliverables, performance against deadlines, end-user feedback, accuracy
of status reporting, ability to solve problems.
Respondents also referred to: ability to take feedback, success in teamwork, adherence to specs, self-motivation, knowing
when and how to ask for help, repeat business, follow-through, willingness to share and mentor, being innovative in attacking
tasks.www.allwalkin.blogspot.com
Several mentioned adherence to SOPs and programming standards, begging the issue of how many shops use these tools.
Some use strict code standards for readability and maintainability, checklists, guidelines, and keep complete validation folders.
Questions on QC and validation revealed that accuracy of results was an important, yet many did not use program checkers or
QC reviewers. The measure was client acceptance.
Number of lines of code written was dismissed almost entirely as a useful metric for programmers. Comments indicate it could
promote hackerism. Programmers would not be striving for the most efficient solutions and they would not be motivated to
document their programs or maintain progress reports. Programmers often claim the number of hours worked is an effective
measure. Managers were looking for working smarter, not longer.
One most interesting comment made on the survey indicated that reliance of metrics is used as a substitute for good technical
managers who know how to manage and motivate technical employees.
The Behavioral Interview
In the spirit of “a leopard never changes his spots”, the behavioral interview operates on the premise that past behavior is the
best predictor of future performance.
Typically, behavioral interview questions open with phrases like: “tell me about a time when…”, describe a situation where…”,
“give me an example of…”, or “tell me how you dealt with…”. An interviewer will probe for work experience demonstrating
such skills as: leadership, teamwork, flexibility, decision making, communication, and more. Based on the core competencies
of the company or group, the questions will be structured to probe for suitable transferable behavior. Practitioners apply the
S.T.A.R. model to the responses:
S = Situation
T = Task
A = Action
R = Result.
Specific descriptions of each element complete the candidate’s story. A web search on “behavioral interviewing” will turn up a
wealth of theory and examples for application of this technique.
6
A Behavioral Slant on the Technical Interview
Applying the behavioral technique to technical material is very subjective, depending on the business problems you routinely
solve. And the intent would be to experience a candidate’s approach to problem analysis.
Consider word problems that describe your set up for a typical or complicated merge for reporting. If input data set A contains
IDNUM and EMP_NAME, data set B has IDNUM and JOB_DESC, and data set C has JOB_DESC and BASE_SAL, how
would you process these data to create a report showing EMP_NAME and BASE_SAL?
The question could probe for an understanding of the bigger picture, such as: describe five ways of achieving efficiency in your
SAS programming; what are the dependencies and tradeoffs? This would raise issues regarding hardware, human factors,
technical SAS software techniques, and more.
Interesting discussions are also generated around debugging and testing habits, coding conventions, use of HELP and tech
support and other technical resources.
A Behavioral Slant on the Technical Interview in the Pharmaceutical Industry
♦ What do you find challenging about reporting lab data?
♦ How do you feel about hardcoding? How do you handle requests for it?
♦ What are important elements of a test plan?
♦ What is the difference between testing and validation?
Survey Results: Interview Extremes
“Recruiting is a triumph of hope over experience.”
Respondents reported unusual experiences, including the candidate who filed her nails throughout the interview, the one who
brought her badly misbehaving nine year old, the one who ate his Big Mac and french fries, the one who leaned back in the
chair and put his feet on the desk, the one who brought his dog, and the one who burst into song after lunch.
Human resources lore tells of the woman who brought her parents and let them answer all the questions and the lady who
wanted to change jobs to be closer to good shopping. Interviewers object to chewing gum, smoking, alcohol, excessive
questions, bad-mouthing a previous boss or company, and name-dropping, among other things.
A respondent interviewer asked one person what the LAG function did, to which the candidate replied: “Is that the way you do
things around here -- ask questions you already know the answers to?” Then there was the candidate whose reaction to a
technical interview was: “Why are you asking me all these technical questions?”
Another respondent was very impressed by a candidate who brought SAS program samples that were color-coded. It showed
good organizational skills, nice presentation, attention to detail (or perhaps too much attention to detail?).
Proficiency Testing and Certification
Several respondents reported interviewing from a “standard” list of questions devised in-house; some have been shared at
previous SUGIs or on SAS-L. Others administer homegrown technical quizzes or tests to capture a candidate’s technical
skills. Many questions were intended to evoke an approach to a problem, without requiring a SAS code solution necessarily.
A few year’s ago, SAS-L users participated in the beta test of a certification test for SAS programmers on the web at
www.tekmetrics.com. It was strictly multiple choice and drew conclusions from scores. One tester commented: “The test was
somewhat interesting (but slow) to take, but also illustrated some of the problems with competence testing. There were
ambiguous questions. There were poorly worded questions. There were questions that, strictly speaking, didn't have any
correct answers. There were questions where not enough information was given to determine a complete answer. There were
questions that appeared to have typos. There were answers which 99.9% of all SAS users will never care about.” Do these
tests address everything that is important about a candidate’s qualifications and fit for a position?
Tekmetric’s tests focus on: 1) basic programming topics: acting on selected observations, character and numeric variables,
creating subsets, finding shortcuts, 2) understanding DATA step processing, using more than one observation in a calculation,
dates; 3) combining SAS data sets: working with grouped or sorted observations, concatenating, merging; 4) Macro Facility:
creating a macro, Macro Variables; 5) preparing data: raw data, SAS data sets; 6) PROCs: datasets, format, freq, sort,
7
summary, means, transpose; 7) producing reports: summary tables, detail reports; 8) rules of the SAS language: formats,
functions, arrays, informats; 9) storing and managing data, getting information about data sets, SAS Data Libraries, diagnosing
and avoiding errors, understanding and enhancing output.
The SAS Institute has a global certification program in response to industry demands for assessment tools. Exams test
knowledge in core areas of SAS software programming, including data management, business intelligence reporting, and
applications development. An eight-week master course is available, in addition to regular training courses, as preparation.
Experienced SAS users may need no prep.
The debates on SAS-L and panel discussions at SUGI constituted early evidence that the SAS community is divided on the
issue of certification. Some longtime users feel they have proven their value; beginning programmers may actually find value
in obtaining job offers; high-tech companies see value-add to their reputation. You are invited to draw your own conclusions.
Networking www.allwalkin.blogspot.com
Another interesting phenomenon observed in interview discussions is the quality of a candidate’s network. The candidate will
have consistently improved their marketability by “networking” at the water cooler/coffee pot or through conference attendance.
They may even have used their network in getting the interview. Some interviewees will show teaching and volunteering on
the resume, an indication of practicing and honing organizational and planning skills.
Sports, professional activities, and community involvement provide more evidence of networking. Involvement, “keeping in
touch”, continuing education demonstrate an interest in balance and a rounded practicing of business-like skills in many
venues.
The 80/20 Rule
Perhaps the simplest and best advice involved application of the 80/20 Rule. In an interview situation, ask questions 20% of
the time and listen 80% to obtain the most data with which to make your hiring decisions. Have you ever been to an interview
where the hiring manager did ALL the talking and you wonder: how did he learn anything about me to know whether or not I’m
qualified?
Conclusions
It would not be prudent to draw conclusions from this survey, but the responses were interesting and instructive. What seems
evident is that the needs of hiring entities vary greatly and the hiring process is highly subjective. And people are looking for
very different skill sets and personality traits in candidates.
What I am taking away from this exercise is a new perspective on and respect for the interview process. Armed with new
information, I can hopefully contribute to the overall effectiveness of the hiring in our department.
Author contact: NeilHowardInc@aol.com
Acknowledgments
Special thanks to Susan Fehrer, BioClin. Many thanks to Joshua Sharlin; Jeff Antonelli; Bob Hamer; Linda Pickle, NCI/NIH;
Greg Nelson; as well as Lee Herman, Cindy Zender, Bob Virgile, Jodi Barnes, Andy Kuligowski, Aria Razban, Tracy Cermack,
Steven Weinburg, Ian Whitlock, Heidi Markovitz, Cyndie Gareleck, Pete Hellmann, Peter Yribar, Jim Bademian, and James
Gear. Thanks to the following SAS-L contributors for sharing their interview thoughts and questions with the SAS community:
Andrew Karp, Standish Sibley, Mike Rhodes, Paul Dorfman, Karsten Self, Jack Hamilton, Girish Patel, Timothy Berryhill,
Patricia Flickner, Chris Strickland, Ian Whitlock, Erik Larsen, Bernard Tremblay, and David Nasser.
SAS is a registered trademark of SAS Institute Inc., Cary, NC.
8
References
Deems, Richard S.: Hiring: More Than a Gut Feeling. Book-mart Press, 1995.
Messmer, Max: The Fast Forward MBA in Hiring: Finding and Keeping the Best People. John Wiley & Sons, Inc., 1998.
Yate, Martin: Hiring the Best, A Managers Guide to Effective Interviewing. Holbrook, MA: Adams Media Corporation, 1994.
9
-------------------------------------------------------------------------------------------------------------------------------------
Interview Questions
Collected from: SAS-L; SAS users, managers and instructors; individual suggestions, questions in use, etc.
NOTES:
⇒ the paper author does not vouch for the value of all these questions
⇒ answers are not supplied
⇒ technical interviews should be conducted by qualified technical people
⇒ there could be multiple answers to some questions; questions may overlap
⇒ logic and problem solving demonstration can be more telling than a correct answer to a syntax question
⇒ administering non-standard proficiency tests could have legal ramifications (please visit your personnel
department)
⇒ some great programmers are lousy interviewers/test-takers; some great interviewers/test-takers are not good
programmers
⇒ the list of technical questions is by no means comprehensive
Very Basic
◊ What SAS statements would you code to read an external raw data file to a DATA step?www.allwalkin.blogspot.com
◊ How do you read in the variables that you need?
◊ Are you familiar with special input delimiters? How are they used?
◊ If reading a variable length file with fixed input, how would you prevent SAS from reading the next record if the last
variable didn’t have a value?
◊ What is the difference between an informat and a format? Name three informats or formats.
◊ Name and describe three SAS functions that you have used, if any?
◊ How would you code the criteria to restrict the output to be produced?
◊ What is the purpose of the trailing @? The @@? How would you use them?
◊ Under what circumstances would you code a SELECT construct instead of IF statements?
◊ What statement do you code to tell SAS that it is to write to an external file? What statement do you code to write the
record to the file?
◊ If reading an external file to produce an external file, what is the shortcut to write that record without coding every single
variable on the record?
◊ If you’re not wanting any SAS output from a data step, how would you code the data statement to prevent SAS from
producing a set?
◊ What is the one statement to set the criteria of data that can be coded in any step?
◊ Have you ever linked SAS code? If so, describe the link and any required statements used to either process the code or
the step itself.
◊ How would you include common or reuse code to be processed along with your statements?
◊ When looking for data contained in a character string of 150 bytes, which function is the best to locate that data: scan,
index, or indexc?
◊ If you have a data set that contains 100 variables, but you need only five of those, what is the code to force SAS to use
only those variable?
◊ Code a PROC SORT on a data set containing State, District and County as the primary variables, along with several
numeric variables.
◊ How would you delete duplicate observations?
◊ How would you delete observations with duplicate keys?
◊ How would you code a merge that will keep only the observations that have matches from both sets.
◊ How would you code a merge that will write the matches of both to one data set, the non-matches from the left-most data
set to a second data set, and the non-matches of the right-most data set to a third data set.
Internals
◊ What is the Program Data Vector (PDV) or Logical Program Data Vector (LPDV)? What are its functions?
◊ Does SAS 'Translate' (compile) or does it 'Interpret'? Explain.
◊ At compile time when a SAS data set is read, what items are created?
◊ Name statements that are recognized at compile time only?
◊ Identify statements whose placement/location in the DATA step is critical.
◊ Name statements that function at both compile and execution time.
◊ Name statements that are execution only.
10
◊ In the flow of DATA step processing, what is the first action in a typical DATA Step?
◊ What is _N_ ?
◊ What is _error_? What causes the flag to be set, and what happens as a result?
Base SAS
◊ What is the effect of the OPTIONS statement ERRORS=1?
◊ What's the difference between VAR A1 - A4 and VAR A1 -- A4 ?
◊ What do the SAS log messages “numeric values have been converted to character” mean? What are the implications?
◊ Why is a STOP statement needed for the POINT= option on a SET statement?
◊ How do you control the number of observations and/or variables read or written?
◊ Approximately what date is represented by the SAS date value of 730?
◊ How would you remove a format that has been permanently associated with a variable??
◊ What does the RUN statement do?
◊ Why is SAS considered self-documenting?
◊ What areas of SAS are you most interested in?
◊ Briefly describe 5 ways to do a "table lookup" in SAS.
◊ What versions of SAS have you used (on which platforms)?
◊ What are some good SAS programming practices for processing very large data sets?www.allwalkin.blogspot.com
◊ What are some problems you might encounter in processing missing values?
∗ In Data steps? Arithmetic? Comparisons? Functions? Classifying data?
◊ How would you create a data set with 1 observation and 30 variables from a data set with 30 observations and 1 variable?
◊ What is the different between functions and PROCs that calculate the same simple descriptive statistics?
◊ If you were told to create many records from one record, show how you would do this using arrays and with PROC
TRANSPOSE?
◊ What are _numeric_ and _character_ and what do they do?
◊ How would you create multiple observations from a single observation?
◊ For what purpose would you use the RETAIN statement?
◊ What is a method for assigning first.VAR and last.VAR to the BY group variable on unsorted data?
◊ What is the order of application for output data set options, input data set options and SAS statements?
◊ What is the order of evaluation of the comparison operators: + - * / ** ( ) ?
◊ Do you use an AUTOEXEC? Why or why not? Provide an example.
Testing, debugging
◊ How could you generate test data with no input data?
◊ How do you debug and test your SAS programs?
◊ What can you learn from the SAS log when debugging?
◊ What is the purpose of _error_ ?
◊ How can you put a “trace” in your program?
◊ Are you sensitive to code walk-throughs, peer review, or QC review?
◊ Have you ever used the SAS Debugger?
◊ What other SAS features do you use for error trapping and data validation?
◊ What technique (PROC) could you use to verify your recoding code (e.g., programming ages into age GROUPS)?
Missing values
◊ How does SAS handle missing values in: assignment statements, functions, a merge, an update, sort order, formats,
PROCs?
◊ How many missing values are available? When might you use them? How do they compare to one another?
◊ How do you test for missing values?
◊ How are numeric and character missing values represented internally?
General
◊ What has been your most common programming mistake?
◊ What is your favorite programming language and why?
◊ What is your favorite operating system? Why?
◊ Do you observe any coding standards? What is your opinion of them?
◊ What percent of your program code is usually original and what percent copied and modified?
11
◊ Have you ever had to follow SOPs or programming guidelines?
◊ Which is worse: not testing your programs or not commenting your programs?
◊ Name several ways to achieve efficiency in your program. Explain trade-offs.
◊ What other SAS products have you used and consider yourself proficient in using?
Functions
◊ How do you make use of functions?
◊ When looking for contained in a character string of 150 bytes, which function is the best to locate that data: scan, index,
or indexc?
◊ What is the significance of the 'OF' in X=SUM(OF a1-a4, a6, a9); ?
◊ What do the PUT and INPUT functions do?
◊ Which date function advances a date, time or date/time value by a given interval?
◊ What do the MOD and INT function do?
◊ How might you use MOD and INT on numerics to mimic SUBSTR on character strings?
◊ In ARRAY processing, what does the DIM function do?www.allwalkin.blogspot.com
◊ How would you determine the number of missing or nonmissing values in computations?
◊ What is the difference between: x=a+b+c+d; and x=SUM(a,b,c,d); ?
◊ There is a field containing a date. It needs to be displayed in the format "ddmonyy" if it's before 1975, "dd mon ccyy" if it's
after 1985, and as 'Disco Years' if it's between 1975 and 1985. How would you accomplish this in data step code? Using
only PROC FORMAT.
◊ In the following DATA step, what is needed for ‘fraction’ to print to the log? data _null_; x=1/3; if x=.3333 then put
'fraction'; run;
◊ What is the difference between calculating the ‘mean’ using the mean function and PROC MEANS?
PROCs
◊ Have you ever used "Proc Merge”? (you might think this is a silly question, or perhaps a trick question (yes, it is), but be
prepared for some surprising answers)
◊ If you were given several SAS data sets you were unfamiliar with, how would you find out the variable names and formats
of each dataset?
◊ What SAS PROCs have you used and consider yourself proficient in using?
◊ How would you keep SAS from overlaying the a SAS set with its sorted version?
◊ In PROC PRINT, can you print only variables that begin with the letter "A"?
◊ What are some differences between PROC SUMMARY and PROC MEANS?
◊ PROC FREQ:
∗ Code the tables statement for a single-level (most common) frequency.
∗ Code the tables statement to produce a multi-level frequency.
∗ Name the option to produce a frequency line items rather that a table.
∗ Produce output from a frequency. Restrict the printing of the table.
◊ PROC MEANS:
∗ Code a PROC MEANS that shows both summed and averaged output of the data.
∗ Code the option that will allow MEANS to include missing numeric data to be included in the report.
∗ Code the MEANS to produce output to be used later.
◊ Do you use PROC REPORT or PROC TABULATE? Which do you prefer? Explain.
Merging/Updating
◊ What happens in a one-on-one merge? When would you use one?
◊ How would you combine 3 or more tables with different structures?
◊ What is a problem with merging two data sets that have variables with the same name but different data?
◊ When would you choose to MERGE two data sets together and when would you SET two data sets?
◊ Which data set is the controlling data set in the MERGE statement?
◊ How do the IN= variables improve the capability of a MERGE?
◊ Explain the message 'MERGE HAS ONE OR MORE DATASETS WITH REPEATS OF BY VARIABLES”.
Simple statistics
◊ How would you generate 1000 observations from a normal distribution with a mean of 50 and standard deviation of 20.
How would you use PROC CHART to look at the distribution. Describe the shape of the distribution.
12
◊ How do you generate random samples?
Customized Report Writing
◊ What is the purpose of the statement DATA _NULL_ ; ?
◊ What is the pound sign used for in the DATA _NULL_ ?
◊ What would you use the trailing @ sign for?
◊ For what purpose(s) would you use the RETURN statement?
◊ How would you determine how far down on a page you have printed in order to print out footnotes?
◊ What is the purpose of using the N=PS option?
Macro
◊ What system options would you use to help debug a macro?
◊ Describe different ways of creating a macro variable.
◊ How do you identify a macro variable?
◊ How do you define the end of a macro?
◊ How do you assign a macro variable to a SAS variable?
◊ For what purposes have you used SAS macros?
◊ What is the difference between %LOCAL and %GLOBAL?
◊ How long can a macro variable be? A token? www.allwalkin.blogspot.com
◊ If you use a SYMPUT in a DATA step, when and where can you use the macro variable?
◊ What do you code to create a macro? End one?
◊ Describe how you would pass data to a macro.
◊ You have five data sets that need to be processed identically; how would you simplify that processing with a macro?
◊ How would you code a macro statement to produce information on the SAS log? This statement can be coded anywhere.
◊ How do you add a number to a macro variable?
◊ If you need the value of a variable rather than the variable itself, what would you use to load the value to a macro
variable?
◊ Can you execute a macro within a macro? Describe.
◊ Can you a macro within another macro? If so, how would SAS know where the current macro ended and the new one
began?
◊ How are parameters passed to a macro?
Pharmaceutical Industry
◊ Describe the types of SAS programming tasks that you performed: Tables? Listings? Graphics? Ad hoc reports?
Creating derived dataset specification? Coding derived datasets?
◊ Have you been involved in editing the data or writing data queries?
◊ What are the challenges of programming LAB data?
◊ What are the challenges of programming con-meds?
◊ What techniques and/or PROCs do you use for tables?
◊ Do you prefer PROC REPORT or PROC TABULATE? Why?
◊ Are you involved in writing the inferential analysis plan? Tables specifications?
◊ What do you feel about hardcoding?
◊ How experienced are you with customized reporting and use of DATA _NULL_ features?
◊ How do you write a test plan?
◊ What is the difference between verification and validation?
◊ What is your experience in creating derived data sets?
◊ Name some good uses of ROC COMPARE in statistical programming.
◊ What are the complications of computing “ages”?
◊ Describe a typical program header.
Intangibles
◊ What was the last computer book you purchased? Why?
13
◊ What is your favorite all time computer book? Why?
◊ For contractors:
∗ Will it bother you if the guy at the next desk times the frequency and duration of your bathroom/coffee breaks on the
grounds that 'you are getting paid twice as much as he is'?
∗ How will you react when, while consulting a SAS documentation manual to get an answer to a problem, someone
says: 'hey, I thought you were supposed to know all that stuff already, and not have to look it up in a book!'
∗ Can you continue to write code while the rest of the people on the floor where you work have a noisy party to which
you were not invited?
Non-Technical
◊ Can you start on Monday?
◊ Do you think professionally? www.allwalkin.blogspot.com
∗ How do you put a giraffe into the refrigerator? Correct answer: Open the refrigerator door, put the giraffe in, and
close the door. This question tests whether or not the candidate is doing simple things in a complicated way.
∗ How do you put an elephant in the refrigerator? Incorrect answer: Open the refrigerator door, put in the elephant, and
close the door. Correct answer: Open the refrigerator door, take out the giraffe, put in the elephant, and close the
door. This question tests your foresight.
∗ The Lion King is hosting an animal conference. All the animals in the world attend except one. Which animal does
not attend? Correct answer: The elephant. The elephant is in the refrigerator, remember? This tests if you are
capable of comprehensive thinking.
∗ There is a river notoriously known for it's large crocodile population. With ease, how do you safely cross it? Correct
answer: Simply swim across. All of the crocodiles are attending the Lion King's animal conference. This questions
your reasoning ability.
Open-ended questions
◊ Describe a time when you were really stuck on a problem and how you solved it.
◊ Describe the function and utility of the most difficult SAS macro that you have written.
◊ Give me an example of ……
◊ Tell me how you dealt with …….
◊ How do handle working under pressure?
◊ Of all your work, where have you been the most successful?
◊ What are the best/worst aspects of your current job?
◊ If you could design your ideal job, what would it look like?
◊ How necessary is it to be creative in your work?
◊ If money were no object, what would you like to do?
◊ What would you change about your job?

Receive All Free Updates Via Facebook.