Top SAS Interview Questions and Answers

Last updated on Feb 18 2022
Shankar Shankar Trivedi

Table of Contents

What is SAS?  What are the functions does it performs?

SAS means Statistical Analysis System, which is an integrated set of software products.

  • Information retrieval and data management
  • Writing reports and graphics
  • Statistical analytics, econometrics and data mining
  • Business planning, forecasting, and decision support
  • Operation research and Project management
  • Quality Improvement
  • Data Warehousing
  • Application Development

What is the basic structure of the SAS base program?

the basic structure of SAS consists of

==DATA step, which recovers & manipulates data.
==PROC step, which interprets the data.

Explain data step in SAS

The Data step creates a SAS dataset which carries the data along with a “data dictionary.” The data dictionary holds information about the variables and their properties.

What is PDV?

The logical area in the memory is represented by PDV or Program Data Vector. At the time, SAS creates a database of one observation at a time. An input buffer is created at the time of compilation which holds a record from an external file. The PDV is created following the input buffer creation.

What are the data types does SAS contain?

The data types in SAS are Numeric and Character.

What is the basic syntax style in SAS?

To run the program successfully, and you have the following basic elements:

  • There should be a semi-colon at the end of every line
  • A data statement that defines your data set
  • Input statement
  • There should be at least one space between each word or statement
  • A run statement

For example: In file ‘H: \StatHW\yourfilename.dat’;

Which statement does not perform automatic conversions in comparisons?

In SAS, the “where” statement does not perform automatic conversions in comparisons.

What is a method to debug and test your SAS program?

You can debug and test your SAS program by using Obs= and systems options to trace the program execution in log

What is the difference between nodupkey and nodup options?

The difference between the NODUP and NODUPKEY is that NODUP compares all the variables in our dataset while NODUPKEY compares just the BY variables

 

What is the use of PROC gplot?

PROC gplot has more options and can create more colorful and fancier graphics.

What is PROC in SAS?

In SAS, PROC steps analyze and process data in the form of an SAS data set. It controls a library of routines that perform tasks on SAS data set options such as sorting, summarizing and listing.

 What is the SAS data set?

A SAS data set is a file consisting of two parts.

  • A descriptor portion
  • A data portion

List out some key concept of SAS

Some key concept of SAS include,

  • SORT procedure
  • Missing values
  • KEEP=, DROP= dataset options
  • Data step logic
  • Reset to missing, or the RETAIN statement
  • Log
  • FORMAT procedure for creating value formats
  • Data types
  • IN= dataset option

. State the difference between INFORMAT and FORMAT ?

  • INFORMAT: To indicate SAS that a number should be read in a particular format
  • FORMAT: To indicate SAS how to print the variables

What is factor analysis?

Factor analysis is a common term used for a family of statistical techniques associated with the reduction of a set of observable variables in terms of a small number of latent factors.  The main goal of factor analysis is data reduction and summarization.

How you can read the variables that you need?

You read the variables using input statement with column /line pointers, informats and length specifiers.

What are the special input delimiters used in SAS?

Special input delimiters used in SAS are DLM and DSD.

How SAS treats the DSD delimiters?

When you define DSD, SAS treats two consecutive delimiters as a missing value and removes quotation marks from character values.

What is the good SAS programming practices for processing large data sets?

The good SAS programming practices for processing large data sets is to sort them once using firstobs= and obs=.

How to include or exclude specific variables in a data set?

To include or exclude specific variables in a data set you can use DROP, KEEP Statements and Data set Options.

How SUBSTR function works in SAS?

The SUBSTR function is used to abstract substring from a character variable.

What SAS features do you use to check errors and data validation?

To check errors, use the Log, and for data validation use things like Proc Freq, Proc Means or sometimes Proc print to see how data looks.

Name validation tools used in SAS

For DataSet : Data set name/ debug Data set: Name/stmtchk
For SAS Macros variables: Options: mprint mlogic symbolgen

What does PROC print, and PROC contents do?

To display the contents of the SAS dataset PROC print is used and also to assure that the data were read into SAS correctly. While PROC CONTENTS display information about a SAS dataset.

What is the use of function Proc summary?

The syntax of proc summary is the same as that of proc me It computes descriptive statistics on numeric variables in the SAS dataset.

What Proc glm does?

Proc glm performs simple and multiple regression, analysis of variance (ANOVAL), analysis of covariance, multivariate analysis of variance and repeated measure analysis of variance.

What is SAS informats?

SAS INFORMATS are used to read, or input data from external files known as Flat Files ASCII files, text files or sequential files). The informat will tell SAS on how to read data into SAS variables.

Name types of category in which SAS Informats are placed

SAS informats are placed in three categories,

  • Character Informats : $INFORMATw
  • Numeric Informats : INFORMAT w.d
  • Date/Time Informats: INFORMAT w.

What function CATX syntax does?

CATX syntax concatenates character strings remove trailing and leading blanks and inserts separators.

What are the ways to do a “table lookup” in SAS?

There are five ways to do a “table lookup” in SAS which include:

  1. PROC SQL
  2. Match Merging
  3. Direct Access
  4. Format Tables
  5. Arrays

How will you generate test data with no input data?

You will generate test data with no input data using “put” statement and “Data Null”.

What are the difference between CEIL and FLOOR functions in SAS?

The “floor” returns the greatest integer less than/equal to the argument. Whereas the “ceil” function returns the smallest integer greater than/equal to the argument.

What is the difference between SAS functions and procedures?

The difference between SAS functions and procedures is that

  • Procedures expect one variable value per observation
  • Functions expect values to be supplied across an observation

How to remove duplicates using PROC SQL?

To remove duplicates using PROC SQL use following step,

Proc SQL noprint;

Create Table inter.merged as

Select distinct * from inter.readin ;

Quit;

What are common programming errors committed in SAS

Common programming errors committed in SAS are,

  • Missing semicolon
  • Not checking log after submitting program
  • Not using debugging techniques
  • Not using View option vigorously

How to limit decimal places for the variable using PROC MEANS?

By using MAXDEC=option, you can limit decimal places for the variable.

What are the difference between the SAS DATA STEP and SAS PROCs?

  • SAS DATA STEP is used to read in and manipulate data
  • SAS PROCs are sub-routines perform tasks on SAS data set

What is the use of STOP statement?

A STOP statement is used to control the continuous looping in SET statement.

What is RUN-Group processing?

RUN-Group processing allows submitting a PROC step using RUN statement without ending the procedure.

How to test the debugging in SAS?

For debugging in SAS use the Debug clause after ‘/’ in the data statement.

How to create a permanent SAS data set?

In order to create a permanent SAS data set, there are two steps necessary,

  • Assign a library and engine.
  • Create the data. Make sure to assign both a library (other than WORK) and data set name to make the data set permanent.

What is SLIBREF?

SLIBREF is a server-libref.  It specifies the libref that is used by the server to identify the SAS data library when no physical name is determined, and the server libref is different from the client libref.

 What are the default statistics that PROC MEANS produce?

The default statistics that PROC MEANS produce are,

  • N
  • MIN
  • MAX
  • MEAN
  • STD DEV

What is the command used to find missing values?

The command used to find missing values is

missing_values=MISSING(field,field,field);

What is the difference between Match Merge and One to One Merge?

A one-to-one merge is suitable if both data sets in the merge statement are sorted by id, and each observation in one data set has a corresponding observation in the other data set.  If the observations do not match, then match merging is suitable.

What are the scrubbing procedures in SAS?

The scrubbing procedures in SAS are Proc Sort with nodupkey option.  It will eliminate duplicate values.

What is the use of the %include statement?

%INCLUDE statement reads an entire file into the current SAS program you are running and submits that file to the SAS System immediately.

What are the features of SAS?

Following are the features of SAS:

  • Strong Data Analysis Abilities
  • Flexible Generation Programming Language (GL)
  • SAS Studio
  • Support for Various Types of Data Format
  • Management
  • Management
  • Report Output Format
  • Data Encryption Algorithm

Explain some capabilities of the SAS framework.

Following are some capabilities of the SAS framework:

  • Access: SAS allows one to access data from various sources such as Excel files, SAS datasheets, Oracle databases, and more.
  • Manage: It allows us to manage data to subset data, create variables, data cleaning, and data validation. SAS manages the existing data to provide the data that you need.
  • Analyze: After the managing process, it will analyze the data to perform simple evaluations such as frequency and averages and complex analyses. It uses statistical techniques varying from detailed measures such as correlations to logistic regression and mixed models to complicated methods such as Bayesian hierarchical models and modern model selection.
  • Present: It helps to present the data in the form of a list, graphic report, and summary. It will present the result of the analysis in a significant report in multiple formats such as HTML, RTF, and PDF. We can print this report, publish it online, or write them to data files.

 

What is the output of the following program?

data finance;

Amount=;

Rate=./;

do month= to ;

Earned+(amount+earned)*(rate);

output;

end;

run;

Output:

If a variable contains only numbers, can it be a character data type?

Yes, it depends on how the variable is used. Some numbers are used as a categorical value rather than a quantity.

Example: The ID of a particular table can be in number but does not specifically represent any quantity.

Mention the methods to perform a “table lookup” in SAS.

Following are the five methods to perform “table lookup” in SAS:

  • Match Merging
  • Format Tables
  • Direct Access
  • PROC SQL
  • Arrays

What are the most common programming errors that occur in SAS?

The most common programming errors in SAS are:

  • Missing semicolon
  • Not checking log after submitting program
  • Unmatched quotation marks
  • Invalid dataset option
  • Invalid statement option
  • Not using FSVIEW option vigorously
  • Not using debugging techniques

What is the difference between DO WHILE and DO UNTIL?

The DO WHILE expression is evaluated at the top of the DO loop. If the expression is false the first time it is evaluated, then the DO loop will not execute even once. On the other hand, DO UNTIL executes at least once.

When looking for data contained in a character string of bytes, which function is the best to locate that data: scan, index, or indexc?

Index function – It searches a character expression for a string of characters.

SAS Statements Results
a=’ABC.DEF (X=Y)’;b=’X=Y’;

x=index(a,b);

put x;

 

 

 

 

Write code using PROC SORT on a data set containing State, District, and County as the primary variables, along with several numeric variables.

Syntax:

Proc sort data= Dist_County;

By state district city;

Run;

How to remove duplicates using PROC SQL?

Duplicates can be removed by:

Proc SQL noprint;

Create Table inter.Merged as

Select distinct * from inter.readin ;

Quit;

Write a code to print observation through from a dataset.

The FIRSTOBS= and OBS=data set options to allow SAS to print observations through from the data set READIN.

proc print data = readin (firstobs= obs=);

Run;

How to create Macro variables in SAS programming?

There are multiple ways to create macro variables in SAS programming. Some of them are:

  • %LET statement
  • Macro parameters (named as well as positional)
  • CALL SYMPUTX routin
  • INTO in PROC SQL
  • %DO statement (iterative)

How do you remove duplicate values in SAS?

There are three methods to delete duplicate observations in the datasheet:

  1. By using nodups in the procedure

Proc sort data=SAS-Dataset nodups;

by var;

Run;

  1. By using an SQL query

Proc sql;

Develop SAS – dataset as select * from Old-SAS-Dataset where var=distinct(var);

Quit:

  1. By cleaning the data

Set temp;

By group;

If first.group and last.group then

Run;

Explain the difference between SAS functions and procedures.

Functions expect argument value to be supplied across an observation in SAS data while the procedure expects one variable value in an observation.

Example: 

data average ;

set temp ;

avgtemp = mean( of T – T ) ;

run ;

The expressions of the main function are taken under observation where the “mean” function calculates the average of the different values in the observation.

proc sort ;

by month ;

run ;

proc means ;

by month ;

var avgtemp ;

run ;

Here, “proc” is used to calculate the average temperature by month, and this variable is used for denoting the procedure that means the variable month.

How do you identify the number of iterations and specific conditions within a single ‘do’ loop?

The following code will help you to identify the number of iterations and specific conditions within a single ‘do’ loop:

data work;

do i= to until(Sum>=);

Year+;

Sum+;

Sum+Sum*.;

end;

Run;

In this code, the do statement enables you to execute the do loop until the sum is greater than or equal to , or unit; it occurs times.

What is a Linear Regression in SAS?

Linear regression is used to find the relationship between a dependent variable and one or more independent variables. If the score of variable Y is predicted from the score of the second variable X, then, X is determined as the predicted variable and Y as the criterion variable.

Example: Correlation between two variables

PROC SQL;

create table CARS as

SELECT invoice, horsepower, length, weight

FROM

SASHELP.CARS

WHERE make in (‘Audi’,’BMW’)

;

RUN;

proc reg data = cars;

model horsepower = weight ;

Run;

What is the feature of the max() function in SAS?

max() function is used in the programming to return the largest value.

  • x = max(, , -)

// output

  • x = max(, null, )

// output

  • x = max(-)

// output –

  • x = max(, -*.)

// output

Explain the difference between VAR B – B and VAR B — B?

A single dash “-” implies the consecutively numbered variable. A double dash “–” implies variables available in the dataset.

Example:

Data Set: ID NAME B B C B

  • B – B would return B B B
  • B– B would return B B C B

Explain the condition where you code a SELECT construct instead of IF statements?

When you have numeric values and a long series of exclusive conditions, then it is better to use the SELECT group rather than IF-THEN or IF-THEN-ELSE statements. It also reduces the CPU time.

The syntax for SELECT WHEN is as follows:

SELECT (condition);

WHEN () x=x;

WHEN () x=x*;

OTHERWISE x=x-;

END;

Example :

SELECT (str);

WHEN (‘Sun’) wage=wage*.;

WHEN (‘Sat’) wage=wage*.;

OTHERWISE DO;

wage=wage+;

bonus=;

END;

END;

How to create a permanent SAS dataset?

A permanent SAS dataset is saved to a location where it can be retrieved and used later. Thus, it will not be recreated each time you restart SAS. There are two ways to create a permanent SAS dataset:

  • Assign a library and engine
  • Create the data, assign both the library (other than WORK) and dataset name to make the dataset permanent

A library is a location on your computer. It could be a folder or a directory in which SAS data sets and other SAS files are stored. A library refers to the entire folder and not to individual data sets. The libname statement is used to define a library. An engine specifies the type of files that it is to write.

What are some key concepts of SAS?

Following are some of the key concepts of SAS are:

SORT procedure

Missing values

KEEP=, DROP= dataset options

Data step logic

Reset to missing, or the RETAIN statement

Log

FORMAT procedure for creating value formats

Data types

IN= dataset option

Explain some SAS character functions that are used for data cleaning in brief.

Following are the SAS character functions that are used for data cleaning in brief:

  • LOWCASE(char_string) Function: It converts all the characters in a given string to lowercase.
  • UPCASE(char_string) Function: This is used for converting all the characters in a given string to uppercase.
  • COMPBL(str) Function: It compresses multiple blanks to a single blank.
  • TRIM(str) Function: It removes trailing blanks from a given string.
  • Strip Function: It removes leading and trailing spaces.
  • Compress(char_string) Function: It removes leading, between, and trailing spaces.
  • Find Function: It is used to locate a substring within a string

What is the difference between NODUP and NODUPKEY options?

The PROC SORT is categorized between NODUP and NODUPKEY options for removing duplicates. The difference between these options is:

sss1

Could you help us know more about SUBSTR function?

It is a function that helps in extracting a string or even replaces the content of character value.

Define in detail about the TRANSLATE function?

Under this function there are few characters which are specified in a string. They are then replaced with the other characters which are usually specified.

What is exactly SAS?

SAS is the abbreviation of the software called Statistical Analytics System. It includes the best software suite for multivariate analyses, advanced analytics, data management, predictive analysis and business intelligence to name a few. It also offers a graphical point and click solution for the smooth interface. This way it is equally user friendly for the users who are non-technical and thus make sure better advanced options are found through SAS language.

Do you know the features of SAS?

SAS is the best platform that you can opt for. Since it is loaded with many benefits, you can enjoy features such as:

Data Access & Management: A user can also use it as DBMS software.
Reporting & Graphics: It can help you in visualizing the analysis in the type of lists, summary and even the graphic reports
Business solution: It offers the business analysis which you can later use as a the business product for different companies to use
Visualization:  with this type of tool, it becomes possible to visualize the graphs that range from simple plots till the bar charts and even the complex classification panels.
Analytics: It is also considered to be the leading market leader in analytics for different business products and services.

What makes SAS stand out to be the best over other data analytics tools?

There are many alternatives for SAS but what makes it unique as compared to others is:

  • Ease to understand: The concepts included in SAS are extremely easy to learn. Besides, it offers the most convenient option for those who already are aware about the SQL. On the other hand, R comes with a steep learning cover which is considered to be a low level programming language
  • Data Handling Capacities: it is at par the most leading tool which also includes the R& Python. When it comes to handle the huge data, it is the best platform to choose
  • Graphical Capacities: it comes with functional graphical capacities and has a limited learning scope. It is possible to customize the plots
  • Better tool management: It helps in release the updates with regards to the controlled environment. This is the main reason why it is well tested. Whereas if you considered R&Python, it has open contribution and risk of errors in the current development are also high.

What is PROC SORT?

It is used for sorting the SAS data for which variable are set. This way, it becomes possible to set a new data for further usage.

What is PROC UNIVARIATE?

The purpose of using such type of detail is for analysis the elementary at numeric level. It will help you examine how well is the data actually distributed

What is APPEND procedure?

It is all about adding at the end so that in case of SAS, there can be one more SAS data which you can add and further more other data set can automatically be added.

What is BMDP procedure?

This type of process is more basically used for analysis the data and ensure that whatever is received is accurate and comes without any kind of single error.

Define Input and Put function?

There are two types of functions that are of prime importance which are:

  • Input function: It helps in characterizing to the numeric conversion which includes the input (Source, informat)
  • Output function: It includes the numeric to character conversion which includes input (source and format)

Since these two functions are quite important, it is advised to study well about the same. At times, many people do get confused about the functioning.

What is RUN-Group processing?

It is used for submitting the step of a PROC which is used more specifically in RUN statement. It ends without any kind of process.

Do you know the functions that are used for Character handling functions?

There are basically two functions which are used for Character handling functions namely UPCASE and LOWCASE

Do you have any idea about the assigned length which is given to the target variable by the scanning functioning?

The variable that is used for scanning functioning is

What is RUN-Group processing?

It is more specifically used for process and submitting the PROC step that is used with the RUN statement. It does not end the process at any point of time.

Explain in details about function of Stop statement in a SAS Program

The purpose of Stop statement is to stop the process of the current data on an immediate basis. It also allows resuming the statement of the process once there is an end of the current data step.

Explain the difference between using drop = data set option in set and data statement?

If you are not willing to process few of the variables and you don’t even wish them to appear in the new set of the data then you must use specify drop = data set option in that particular set of the statement

But if you want to process some of the variables and don’t wish them to be visible in the new data set then you can also mention drop = data set option in that particular set of the statement

What is BY-Group processing?

This type of term is used to make sure that the data which is process is grouped, indexed or even ordered based depending upon the variables.

Can you explain the process of CALENDAR?

The prime aim of CALENDAR is to make the data of the calendar on monthly basis be visible in the format of the SAS data set.

Could you help me know the right way to limit the variables written to output dataset in DATA STEP?

Generally, KEEP and DROP are used for limiting the variables in the particular dataset

Under the DROP section it becomes,

The DROP is the option which states that SAS comes under which variable if you want to actually drop. If you want to place it on the statement of the SET, there is SAS drop which falls down the specified valuable when the input data becomes valuable. But if you place the DROP option on the DATA statement, the SAS drop down the selective variables when it writes down the output set of the data.

Under the KEEP section it becomes,
Moving on to the next section that comes if KEEP. It allows you to understand the SAS is available which you would want to keep. If you want to place the option of KEEP with that of the SET statement, then SAS keeps the listed available while it reads out the data set stored at the input. However, if you put the KEEP option within the DATA statement, you can use the specified variables when it write-downs the output data set.

What is the right way to validate the SAS program?

The OPTIONS OBS= at the beginning of the code needs to be written but if you want to execute the same then there will be a log which gets detected by the colors that gets highlighted.

What is the difference between reading data from an external file and reading data from an existing dataset?

The main difference is that while reading an existing data set with the SET statement, SAS retains the values of the variables from one observation to the next. Whereas when reading the data from an external file, only the observations are read. The variables will have to re-declared if they need to be used.

Could explain the difference between PROC MEANS and SUMMARY?

Under the PROC MEANS there is a subgroup statist which is created only when there is a BY statement that is being used and the input data is previously well sorted out with the help of BY variables.
Under the PROC SUMMARY, there is a statistics which gets produced automatically for all the subgroups. It gives all sort of information that runs altogether. It would get the best sorting of the data set which is then produced with the help of the variables that significantly defines every subgroup and runs the PROC ME
Under the PROC SUMMARY section, the information in the output does not get created. At such time, you will have to use the OUTPUT statement for creating a new DATA SET and then use PROC PRINT to make sure the computed statics is visible

Do you have any example in which SAS does not convert or fails to convert the character value to numeric one?

You can take the valuable value PayRate which starts with a dollar sign ($). When the SAS converts the PayRate automatically to the numeric value, the value gets converted.
Furthermore, there is also the dollar sign which further blocks the process. The value then cannot get converted into the numeric one.
That is why it is always advised to include the PUT and INPUT functions in the programs when the conversion takes place.

Do you know any SAS functions?

Substr, Scan, Catx, trim, Index, find, tranwrd, and Sum.

Explain the work of tranwrd function?

The replacement or the removal if the occurrence of a pattern or the characters within the character string is done with the TRANWRD function

Do you know the data types present in SAS?

SAS comes with two types of data which is numeric and character. Other than this, dates are also the part of the characters even if there are some functions to work as per the dates.

Could you explain the working of the dates in SAS data?

The central to every data set is the data itself. In SAS, the data is available in form of tabular manner where there are some of the variables that occupy the column space and also the row space gets occupied with the observation section.
The numbers are treated by SAS as the numeric data while other things come under the character data. This is the main reason why SAS comes with two types. If you take an example, SAS date is the numerical value which is equivalent to the days from the 1st of January,

Can you explain about CALL PRXFREE Routine?

It focuses on Character String Matching to allocate the free memory

Do you know what CALL PRXCHANGE routine is?

CALL PRXCHANGE routine helps to perform the pattern matching replacement

What is ANYDIGIT function?

The focus of such function is to search the character string and return it soon after it is found

Could you please explain or understand in detail about CALL MISSING routine?

When there is a numeric or the character value that is specified, it is will be assigned or categorized under the missing values. For this, the use of CALL MISSING routine is made. There is no hard and fast rule for using it. Once you start using it, you get the far better clear idea on the same.

What is SAS?

SAS – A Statistical Analysis System, that has an integrated suite of software solutions. It is a software suite for advanced analytics, multivariate analyses, business intelligence, data management and predictive analytics.

What is Base SAS?

Base SAS is a text-based, basic IDE with an older interface. Enterprise Guide (EG) is a more GUI-like IDE with wizards to assist with writing code for various processes.

Explain the use of SUBSTR function?

SUBSTR Function is used for extracting a string or replacing contents of character value.

Define the function of Stop statement in a SAS Program?

Stop statement causes SAS to stop processing the current data step immediately and resume processing statement after the end of current data step.

How many data types are there in SAS? 

There are two SAS data types. Character and Numeric. Apart from this, dates are also considered as characters although there are implicit functions to work upon dates.

Briefly explain Input and Put function?

Input function – Character to numeric conversion- Input(source,informat)

put function – Numeric to character conversion- put(source,format)

Define RUN-Group processing?

RUN-Group processing is used to submit a PROC step using RUN statement without ending the procedure.

What are the functions which are used for Character handling functions?

UPCASE and LOWCASE are the functions which are used for character handling functions.

How do you specify the number of iterations and specific condition within a single do loop?

 

 

 

 

 

 

 

data work;

do i= to until(Sum>=);

Year+;

Sum+;

Sum+Sum*.;

end;

run;

This iterative DO statement enables you to execute the DO loop until Sum is greater than or equal to  or until the DO loop executes times, whichever occurs first.

How can you limit the variables written to output dataset in DATA STEP?

Both DROP and KEEP can be used to limit the variables in the dataset.

  • The DROP= option tells SAS which variables you want to drop. If you place the DROP= option on the SET statement, SAS drops the specified variables when it reads the input data set and if you place the DROP= option on the DATA statement, SAS drops the specified variables when it writes to the output data set.
  • The KEEP= option tells SAS which variables you want to keep. If you place the KEEP= option on the SET statement, SAS keeps the listed variables when it reads the input data set. On the other hand, if you place the KEEP= option on the DATA statement, SAS keeps the specified variables when it writes to the output data set.

Explain BOR function?

It is a bitwise logical operation and is used for returning bitwise logical OR between two statements.

What is the difference between do while and do until?

DO WHILE expression is evaluated at the top of the DO loop. If the expression is false the first time it is evaluated, then the DO loop never executes. Whereas DO UNTIL executes at least once.

How to convert a numeric variable to a character variable?

You must create a differently-named variable using the PUT function.

The example below shows the benefits of the PUT function.

charvar=put(numvar, .) ;

Explain COMPRESS data set option?

It is used for compressing the data into new output.

What are the features of Base SAS system?

It provides Ipv support, new true type fonts, extended time notations, restart mode, universal printing, checkpoint mode and ISO support.

How can SAS program be validated?

By writing OPTIONS OBS= at the starting of the code and if execution of code is On PC SAS than log will be detected itself by highlighted colors. These are the two ways for validating an SAS program.

Difference between INPUT and INFILE

The INFILE statement is used to identify an external file while the INPUT statment is used to describe your variables.

FILENAME TEST ‘C:\DEEP\File.xls’;

DATA READIN;

INFILE TEST;

LENGTH NAME $;

INPUT ID NAME$ SEX;

RUN;

Note : The variable name, followed by $ (dollar sign), idenfities the variable type as character. In the example shown above, ID and SEX are numeric variables and Name a character variable.

Difference between Informat and Format

Informats read the data while Formats write the data. Informat – To tell SAS that a number should be read in a particular format. For example: the informat mmddyy. tells SAS to read the numberas the date December , . Format – To tell SAS how to print the variables.

Difference between Missover and Truncover

Missover -When the MISSOVER option is used on the INFILE statement, the INPUT statement does not jump to the next line when reading a short line. Instead, MISSOVER setsvariables to missing. Truncover – It assigns the raw data value to the variable even if the value is shorter than the length that is expected by the INPUT statement. The following is an example of an external file that contains data:

 

This DATA step uses the numeric informat . to read a single field in each record of raw data and to assign values to the variable ID.

data readin;

infile ‘external-file’ missover;

input ID.;

run;

proc print data=readin;

run;

The output is shown below :

Obs ID

.

.

.

Truncover

data readin;

infile ‘external-file’ truncover;

input ID.;

run;

proc print data=readin;

run;

The output is shown below :

Obs ID

Purpose of double trailing@@ in Input Statement ?

The double trailing sign (@@)tells SAS rather than advancing to a new record, hold the current input record for the execution of the next INPUT statement.

DATA Readin;

Input Name $ Score @@;

cards;

Sam David Ram

Deeps Daniel Pars

;

RUN;

The output is shown below :

Double Trailing

How to include or exclude specific variables in a data set?

– DROP, KEEP Statements and Data set Options
DROP, KEEP Statement

The DROP statement specifies the names of the variables that you want to remove from the data set.

data readin;

set readin;

drop score;

run;

The KEEP statement specifies the names of the variables that you want to retain from the data set.

data readin;

set readin;

keep var;

run;

DROP, KEEP Data set Options

The main difference between DROP/ KEEP statement and DROP=/ KEEP=data set option is that you can not use DROP/KEEP statement in procedures.

data readin (drop=score);

set readin;

run;

data readin (keep=var);

set readin;

run;

How to print observations through from a data set?

The FIRSTOBS= and OBS=data set options would tell SAS to print observations through from the data set READIN.

proc print data = readin (firstobs= obs=);

run;

What are the default statistics that PROC MEANS produce?

PROC MEANS produce the “default” statistics of N, MIN, MAX, MEAN and STD DEV.

Name and describe functions that you have used for data cleaning?

sss2

Difference between FUNCTION and PROC

Example : MEAN function and PROC MEANS

The MEAN function is an average of the value of several variables in one observation.

The average that is calculated using PROC MEANS is the sum of all of the values of a variable divided by the number of observations in the variable.

In other words,The MEAN function will sum across the row and a procedure will SUM down a column.

MEAN Function

AVG=MEAN (of Q – Q);

See the output below :

MEAN Function Output

PROC MEANS

PROC MEANS DATA=READIN MEAN;

RUN;

The output is shown below :

PROC MEANS Output

Differences between WHERE and IF statement?

  1. WHERE statement can be used in procedures to subset data while IF statement cannot be used in procedures.
  2. WHERE can be used as a data set option while IF cannot be used as a data set option.
  3. WHERE statement is more efficient than IF statement. It tells SAS not to read all observations from the data set
  4. WHERE statement can be used to search for all similar character values that sound alike while IF statement cannot be used.
  5. WHERE statement can not be used when reading data using INPUT statement whereas IF statement can be used.
  6. Multiple IF statements can be used to execute multiple conditional statements
  7. When it is required to use newly created variables, useIF statement as it doesn’t require variables to exist in the READIN data set

What is Program Data Vector (PDV)?

PDV is a logical area in the memory.

How PDV is created?

SAS creates a dataset one observation at a time.Input buffer is created at the time of compilation, for holding a record from external file.PDV is created followed by the creation of input buffer.SAS builds dataset in the PDV area of memory.

What is DATA _NULL_?

The DATA _NULL_ is mainly used to create macro variables. It can also be used to write output without creating a dataset.The idea of “null” here is that we have a data step that actually doesn’t create a data set.

What is the difference between ‘+’ operator and SUM function?

SUM function returns the sum of non-missing arguments whereas “+” operator returns a missing value if any of the arguments are missing.

Suppose we have a data set containing three variables – X, Y and Z. They all have missing values. We wish to compute sum of all the variables.

data mydata;

set mydata;

a=sum(x,y,z);

p=x+y+z;

run;

The output is shown in the image below :

SAS : SUM Function vsPlus Operator

In the output, value of p is missing for th, th and th observations.

How to identify and remove unique and duplicate values?

. Use PROC SORT with NODUPKEY and NODUP Options.
. Use First. and Last. Variables –

The detailed explanation is shown below :

SAMPLE DATA SET

ID Name Score
David
David
Sam
Ram
Bane
Mary
Bane
Dane
Jenny
Ken
Simran
Priya

Create this data set in SAS

data readin;

input ID Name $ Score;

cards;

David

David

Sam

Ram

Bane

Mary

Bane

Dane

Jenny

Ken

Simran

Priya ;

run;

There are several ways to identify and remove unique and duplicate values:

PROC SORT
In PROC SORT, there are two options by which we can remove duplicates.

. NODUPKEY Option . NODUP Option

The NODUPKEY option removes duplicate observations where value of a variable listed in BY statement is repeated while NODUP option removes duplicate observations where values in all the variables are repeated (identical observations).

PROC SORT DATA=readin NODUPKEY;

BY ID;

RUN;

PROC SORT DATA=readin NODUP;

BY ID;

RUN;

The output is shown below :

SAS : NODUPKEY vs NODUP

The NODUPKEY has deleted observations with duplicate values whereas NODUP has not deleted any observations.

Why no value has been deleted when NODUP option is used?
Although ID has two identical records (See observation and ), NODUP option has not removed them. It is because they are not next to one another in the dataset and SAS only looks at one record back.

To fix this issue, sort on all the variables in the dataset READIN.
To sort by all the variables without having to list them all in the program, you can use the keywork ‘_ALL_’in the BY statement (see below).

PROC SORT DATA=readin NODUP;

BY _all_;

RUN;

The output is shown below :

SAS NODUP Output

 

Difference between NODUP and NODUPKEY Options?

The NODUPKEY option removes duplicate observations where value of a variable listed in BY statement is repeated while NODUP option removes duplicate observations where values in all the variables are repeated (identical observations).

See the detailed explanation for this question above (Q).

What are _numeric_ and _character_ and what do they do?

. _NUMERIC_ specifies all numeric variables that are already defined in the current DATA step.
. _CHARACTER_ specifies all character variables that are currently defined in the current DATA step.
. _ALL_ specifies all variables that are currently defined in the current DATA step.

Example : To include all the numeric variables in PROC MEANS

proc means;

var _numeric_;

run;

Tutorial :

How to sort in descending order?

Use DESCENDING keyword in PROC SORT code. The example below shows the use of the descending keyword.

PROC SORT DATA=auto; BY DESCENDING engine ; RUN ;

Under what circumstances would you code a SELECT construct instead of IF statements?

When you have a long series of mutually exclusive conditions and the comparison is numeric, using a SELECT group is slightly more efficient than using IF-THEN or IF-THEN-ELSE statements because CPU time is reduced.

The syntax for SELECT WHEN is as follows :
SELECT (condition);
WHEN () x=x;
WHEN () x=x*;
OTHERWISE x=x-;
END;

Example :
SELECT (str);
WHEN (‘Sun’) wage=wage*.;
WHEN (‘Sat’) wage=wage*.;
OTHERWISE DO;
wage=wage+;
bonus=;
END;
END;

 

How to do Matched Merge and output only consisting of observations from both files?

Use IN=variable in MERGE statements. It is used for matched merge to track and select which observations in the data set from the merge statement will go to a new data set.

data readin;
merge file(in=infile) file(in=infile);
by id;
if infile=infile;
run;

How to do Matched Merge and output consisting of observations in file but ot in file, or in file but not in file?

data readin;

merge file(in=infile)file(in=infile);

by id;

if infile ne infile;

run;

How to do Matched Merge and output consisting of observations from only file?

data readin;
merge file(in=infile)file(in=infile);
by id;
if infile;
run;

How do I create a data set with observations=, mean and standard deviation ?

data readin;

do i= to ;

temp= + rannor() * ;

output;

end;

run;

proc means data=readin mean stddev;

var temp;

run;

How to label values and use it in PROC FREQ?

Use PROC FORMAT to set up a format.

proc format;

value score – =‘-‘

– =‘+’

other=‘others’

;

proc freq data=readin;

tables outdata;

format outdatascore. ;

run;

How to use arrays to recode set of variables?

Recode the set of questions: Q,Q,Q…Q in the same way: if the variable has a value of recode it to SAS missing.

data readin;

set outdata;

array Q() Q-Q;

do i= to ;

if Q(i)= then Q(i)=.;

end;

run;

How to use arrays to recode all the numeric variables?

Use _numeric_ and dim functions in array.

data readin;

set outdata;

array Q(*) _numeric_;

do i= to dim(Q);

if Q(i)= then Q(i)=.;

end;

run;

Note : DIM returns a total count of the number of elements in array dimension Q.

How to calculate mean for a variable by group?

Suppose Q is a numeric variable and Age a grouping variable. You wish to compute mean for Q by Age.

PROC MEANS DATA=READIN;

VAR Q;

CLASS AGE;

RUN;

How to generate cross tabulation?

Use PROC FREQ code.

PROC FREQ DATA=auto;

TABLES A*B ;

RUN;

SAS will produce table of A by B.

How to generate detailed summary statistics?

Use PROC UNIVARIATE code.

PROC UNIVARIATE DATA=READIN;

CLASS Age;

VAR Q;

RUN;

Note : Q is a numeric variable and Age a grouping variable.

How to count missing values for numeric variables?

Use PROC MEANS with NMISSoption.

How to count missing values for all variables?

proc format;

value $missfmt ‘ ‘=’Missing’ other=’Not Missing’;

vale missfmt .=’Missing’ other=’Not Missing’;

run;

proc freq data=one;

format _CHAR_ $missfmt.;

tables _CHAR_ / missing missprint nocum nopercent;

format _NUMERIC_ missfmt.;

tables _NUMERIC_ / missing missprint nocum nopercent;

run;

Describe the ways in which you can create macro variables

There are ways to create macro variables:

  1. %Let
  2. Iterative %DO statement
  3. Call Symput
  4. Proc SQl into clause
  5. Macro Parameters.

Use of CALL SYMPUT

CALL SYMPUT puts the value from a dataset into a macro variable.

proc means data=test;

var x;

output out=testmean mean=xbar;

run;

data _null_;

set testmean;

call symput(“xbarmac”,xbar);

run;

%put mean of x is &xbarmac;

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.

. Which date function advances a date, time or datetime value by a given interval?

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).

. How to count the number of intervals between two given SAS dates?

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

. Difference between SCAN and 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.

The following data step executes:

Data strings;

Text=“MICKEY MOUSE & DONALD DUCK”;

Text=scan(text,,’&’);

Run;

What will the value of the variable Text be?

* DONALD DUCK [(Leading blanks are displayed using an asterisk *]

For what purpose would you use the RETAIN statement?

A RETAIN statement tells SAS not to set variables to missing when going from the current iteration of the DATA step to the next. Instead, SAS retains the values.

How to use IF THEN ELSE in PROC SQL?

PROC SQL;

SELECT WEIGHT,

CASE

WHEN WEIGHT BETWEEN AND THEN ’LOW’

WHEN WEIGHT BETWEEN AND THEN ’MEDIUM’

WHEN WEIGHT BETWEEN AND THEN ’HIGH’

ELSE ’VERY HIGH’

END AS NEWWEIGHT FROM HEALTH;

QUIT;

How to remove duplicates using PROC SQL?

Proc SQL noprint;
Create Table inter.Merged as
Select distinct * from inter.readin ;
Quit;

How to count unique values by a grouping variable?

You can use PROC SQL with COUNT(DISTINCT variable_name) to determine the number of unique values for a column.

How to merge two data sets using PROC SQL?

Difference between %EVAL and %SYSEVALF

%EVAL cannot perform arithmetic calculations with operands that have the floating point values. It is when the %SYSEVALF function comes into picture.

%let last=%eval (.+.);

%let last=%sysevalf(.+.);

%put &last;

How to debug SAS Macros

There are some system options that can be used to debug SAS Macros:
MPRINT, MLOGIC, SYMBOLGEN.

.

%let x=temp;
%let n=;
%let x=result;
%let temp=result;

Difference between &x&n , &&x&n , &&&x&n ?

How Data Step Merge and PROC SQL handle many-to-many relationship?

Data Step MERGE does not create a cartesian product incase of a many-to-many relationship. Whereas, Proc SQL produces a cartesian product.

. What is the use of ‘BY statement’ in Data Step Merge?

Without ‘BY’ statement, Data Step Merge performs merging without matching. In other words, the records are combined based on their relative position in the data set. The second data set gets placed to the “right” of the first data set (no matching based on the unique identifier – if data is not sorted based on unique identifier, wrong records can be merged).

When you use ‘BY’ statement, it matches observations according to the values of the BY variables that you specify.

Which is faster- Data Step / Proc SQL

The SQL procedure performed better with the smaller datasets (less than approx. MB) whereas the data step performed better with the larger ones (more than approx. MB).
It is because the DATA step handles each record sequentially so it never uses a lot of memory, however, it takes time to process one at a time. So with a smaller dataset, the DATA step is going to take more time sending each record through.
With the SQL procedure, everything is loaded up into memory at once. By doing this, the SQL procedure can process small datasets rather quickly since everything is available in memory. Conversely, when you move to larger datasets, your memory can get bogged down which then leads to the SQL procedure being a little bit slower compared to the DATA step which will never take up too much memory space.

Enlist the functions performed by SAS.

SAS (Statistical Analysis System) has its own importance in every business domain.

Enlisted below are some of the summarized functions that are performed by SAS:

  • Data Management and Project Management
  • Data Warehousing
  • Operational Research and decisional support
  • Information Retrieval and Quality Management
  • Business Planning
  • Statistical Analysis

What are the components in SAS programming?

The components in SAS programming are:

  • Statements
  • Variables
  • Dataset

. Enlist the syntax rules followed in SAS statements.

SAS program is written in Editor Window. Here, it contains a series of statements followed by the proper syntax in an order for the SAS program to understand it.

Some of the syntax rules that are followed in the case of Statement component of SAS are as follows:

  • The end of any statement is marked by a semicolon (;).
  • A semicolon is also used to separate multiple statements that appear on a single line.
  • SAS statements are not case sensitive and extra spacing before statements are automatically removed.
  • Comments can be included in the SAS program for statements in two different ways as:
    • A line beginning with an asterisk (*) and ending with a semicolon (;).
    • A line beginning with a forwarding slash and an asterisk (/*) and ending with an asterisk and a forward slash (*/).

What are the data types that SAS contains?

Numeric’ and ‘Character’ are the two types of data types which the SAS program contains.

What are PDV and their functions?

Program Data Vector (PDV) is a logical concept and is defined as an area of memory where a data set is being built by SAS.

Functions of PDV are as follows:

  • A database having one observation at one time is created.
  • The input buffer for holding the data from an external file is created at the time of compilation.
  • PDV contains two automatic variables namely, _N_ (displays the count of the data step that is being executed) and _ERROR_ (notifies the error that occurs at the time of execution).

What is SAS data ?

SAS data set is basically referred to as the data that is available for analysis within a SAS program. SAS dataset is also referred to as the SAS data table.

SAS data table consists of two parts:

  • Columns of variables
  • Rows of observations

Useful information about the SAS data set can be summarized as follows:

  • SAS Dataset can read as well as it has built-in data sources for use like Excel, Access, etc.
  • The dataset which is used only in the current session run and discarded after the session ends is known as Temporary Dataset.
  • The Dataset that is stored for use in the future session is also known as the Permanent Dataset.
  • The built-in data set can be accessed using this path Libraries -> My Libraries->SASHELP.

Explain why double trailing @@ is used in Input Statements?

During data step iteration, including double trailing @@ in Input statements implies that SAS should hold the current record for the purpose of execution of the next Input statement rather than switching onto the new record.

Explain the difference between NODUP and NODUPKEY options?

For removing duplicate values from the table, PROC SORT is basically categorized between two options:

  • NODUP
  • NODUPKEY

Which command is used to perform sorting in the SAS program?

PROC SORT command is used for performing sorting, be it on a single variable or multiple variables. This command is performed on the dataset where the new data set is created as a result of sorting but the original data set remains unchanged.

Syntax:

PROC SORT DATA=original OUT=Sorted;

BY variable;

Where,
‘Original’ refers to the original dataset
‘Sorted’ refers to the result as sorted dataset
‘Variable’ refers to the column on which sorting operation is done.

Sorting can be done in both ascending as well as descending order.

For the dataset to display in descending order, keyword ‘Descending’ is used in the BY statement with the column name on which sorting is to be performed.

PROC SORT DATA=original OUT=Sorted;

BY DESCENDING variable

Explain the difference between Informat and Format with an example.

The difference between Informat and Format can be explained as:

Informat Format
Indicate SAS how to read data into SAS variable. Indicate SAS how to display values in the variable.
These are used to read the data or take input data from external files. These are used to write the data.

Differentiate INPUT and INFILE.

Including an INFILE statement within the SAS programming identifies an external file that consists of the data, whereas including INPUT statement in SAS programming describes the variables used.

The syntax for INFILE:

INFILE ‘filename’;

The syntax for INPUT:

INPUT ‘varname’ ‘varname’;

Explain the use of PROC print and PROC contents?

The PROC step of the SAS program is used to invoke built-in procedures for analyzing the data of the dataset.

PROC print: Ensures that the data present in the dataset are read correctly.

PROC contents: Displays the information about the SAS dataset.

Explain DATA_NULL_?

As the name defines, DATA_NULL_ is a data step that actually does not create any data set.

It is used for:

  • Creating macro variables.
  • Writing the output without any data set.

How is character variable converted into a numeric variable and vice versa?

Under SAS programming, there arise many tasks where a character value is to be converted into the numeric and in the same way, a numeric value is to be converted into a character value.

PUT() is used to convert numeric to character. In this case, the source format and source variable type must always be similar.

Example:

char_var= PUT( num_var, .);

INPUT() is used to convert a character to numeric. In this case, the source variable type must always be character variables.

Example:

Num_var= INPUT(char_var,.);

What is the purpose of _CHARACTER_ and _NUMERIC_?

In the current dataset,

_CHARACTER_ defines all the character variables that are currently defined.

Example: To include all the character variables in PROC MEANS, the following statements are used:

PROC MEANS;

Var_character_;

Run;

_NUMERIC_ defines all the numeric variables that are currently defined.

Example: To include all the numeric variables in PROC MEANS, following statements are used:

PROC MEANS;

Var_numeric_;

Run;

What commands are used in the case of including or excluding any specific variables in the data set?

DROP, KEEP, and data set options are used for this purpose.

The variable we want to remove from the data step is specified in the DROP statement.

The variable we want to retain from the data step is specified in the KEEP statement.

Differentiate between PROC MEANS and PROC SUMMARY.

The difference between PROC MEANS and PROC SUMMARY can be understood as follows:

PROC MEANS PROC SUMMARY
This procedure produces the printed report by default in the OUTPUT window. This procedure includes the PRINT in the statement to produce the printed report.
PROC MEANS by default take all the numeric variables in the analysis. PROC SUMMARY takes the variables into the statistical analysis that are described in VAR statement.

Explain the purpose of SUBSTR functions in SAS programming.

In SAS programming, whenever there is a requirement of the program to abstract a substring, the SUBSTR function is used in the case of a character variable.

When a start position and length are specified, then this function is used for abstracting character string.

Syntax: SUBSTR(char_var, start,length);

 Name and describe few SAS character functions that are used for data cleaning in brief.

Few SAS character functions that are used for data cleaning are enlisted below:

  • Compress(char_string) function is used for removing blanks or some specified characters from a given string.
  • TRIM(str) function is used for removing trailing blanks from a given string.
  • LOWCASE(char_string) function is used for converting all the characters in a given string to lowercase.
  • UPCASE(char_string) function is used for converting all the characters in a given string to uppercase.
  • COMPBL(str) function is used for converting multiple blanks to a single blank.

Mention few ways with which a “table lookup’ is done in SAS programming.

In SAS programming, the table lookup values can be stored in the following ways:

  • Code
  • Array
  • Hash object
  • Format
  • Dataset

The following techniques are used to perform ‘table lookup’ in SAS respectively:

  • SELECT/WHEN or IF/THEN statements
  • Array Index value
  • Hash object key value
  • FORMAT statement, PUT function
  • Merge, join, KEY= Option

Let us see an example which shows the ‘Code’ way to perform table lookup by using ‘IF/THEN’ statements:

data location;

set myinfo;

if AreaCode=” then Location=’Ontario, Canada’;

else if AreaCode=” then Location=’New York, NY’;

else Location=’Unknown’;

run;

Differentiate between CEIL and FlOOR functions.

CEIL  function is used for truncating numeric values where it displays the output as the smallest integer. By smallest integer, here means the integer value is greater than/equal to the argument.

Example: CEIL(.) will display output as .

FLOOR function is used for truncating numeric values where it displays the output as the greatest integer. By greatest integer, here means that the integer value is less than/equal to the argument.

Example: FLOOR(.) will display output as .

 What are the ways in which Macro variables can be created in SAS programming?

Well a number of different techniques can be used to create macro variables in SAS programming.

Enlisted below are the five most commonly used methods:

  • %LET statement
  • Macro parameters (named as well as positional)
  • %DO statement (iterative)
  • INTO in PROC SQL
  • CALL SYMPUTX routine

Explain the purpose of the RETAIN statement.

As the meaning of the word ‘RETAIN’ signifies to keep the value once assigned, the purpose of RETAIN statement is the same in SAS programming as it’s meaning implies.

Within a SAS program, when it is required to move from the current iteration to the next of the data step, at that time RETAIN statement tells SAS to retain the values rather than set them to missing.

Example: Let us print a program that will display the output value of ‘z’ starting from by using the RETAIN statement.

data abc;

set xyz;

RETAIN z ;

z = z + ;

run;

Which command is used to save logs in the external file?

PROC PRINTTO command is used to save logs in the external file.

Example:

PROC PRINTTO log=”C:\Users\abc\Downloads\LOG.txt” new;

run;

 Mention some common errors that are usually committed in SAS programming.

Enlisted below are some of the common errors which are usually committed especially when you are new to this programming language.

  • The basic syntax includes a semicolon at the end of each statement and missing a semi-colon is the most common mistake.
  • You skip checking the logs after submitting the program.
  • Commenting errors like failing to use comments where necessary or using comments in an inappropriate way.
  • Not using proper debugging methods.

Mention SAS system options to debug SAS macros.

To help in tracking the macro code as well as the SAS code generated by the macros, some system options can be used.

They are:

  • MLOGIC
  • MPRINT
  • SYMBOLGEN

The message that will be generated by these system options can be seen in the SAS log.

Differentiate between SAS functions and SAS procedures.

The major differences can be discovered/understood by the case explained for both SAS functions and Procedures.

Case:

For Function, argument value is supplied or say taken for calculation across the observation mentioned in the program statement whereas, in the case of Procedure, every observation is expected to have only one variable through which calculation is done as mentioned in the below example.

Let us understand it with examples:

data average;

set temp;

avgtemp = mean (of T – T );

run;

Here in the above examples, the arguments passed to the mean function are taken for calculation as an observation.

proc sort;

by month;

run;

 

proc means;

by month;

var avgtemp;

run;

Here in the above example, Proc means function calculates the average temperature for one argument that is passed as an observation i.e. by month.

What do you know about SYMPUT and SYMGET?

The major differences between the two are mentioned below.

SYMPUT is used for storing the value of a data set into the macro variable whereas SYMGET is used for retrieving the value from the macro variable to the data set.

Explain the special input delimiters used in SAS programming.

The special input delimiters used in SAS programming are:

  • DLM
  • DSD

They are used in the statement ‘INFILE’ and DSD has the functionality of ignoring the delimiters that appear enclosed in quotation marks.

Which function is used to count the number of intervals between two SAS dates?

Interval function INTCK is used for counting the number of intervals between two given SAS dates.

Syntax:

INTCK(interval,start-of-period,end-of-period)

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

WHERE statement can sets the criteria for any data set in a data step or a proc step.

How would you include common or reuse code to be processed along with your statements?

– Using SAS Macros.
– Using a %include statement

When looking for data contained in a character string of bytes, which function is the best to locate that data: scan, index, or indexc?

Index function – Searches a character expression for a string of characters 

SAS Statements Results
a=’ABC.DEF (X=Y)’;
b=’X=Y’;
x=index(a,b);
put x;

If you have a dataset that contains variables, but you need only five of those, what is the code to force SAS to use only those variables?

Use KEEP= dataset option (data statement or set statement) or KEEP statement in a datastep.
eg.

Data fewdata (keep = var var);

Set fulldata (Keep= VAR VAR VAR VAR VAR);

Keep var var;

Run;

Code a PROC SORT on a data set containing State, District and County as the primary variables, along with several numeric variables.

Proc sort data= Dist_County;

By state district city;

Run;


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

data mergeddata;

merge one(in=A) two(in=B);

By ID;

if A and B;

run;

 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.

Data one two three;

Merge DSN (in=A) DSN (in=B);

By ID;

If A and B then output one;

If A and not B then output two;

If not A and B then output three;

Run;

Name statements that are recognized at compile time only?

drop, keep, rename, label, format, informat, attrib, where, by, retain, length, array.

What are the statements that are executed only?

INFILE, INPUT, Output, Call routines

Which are the statements whose placement in the DATA step is critical.

DATA, INPUT, RUN, CARDS ,INFILE,WHERE,LABEL,SELECT,INFORMAT,FORMAT

Name statements that function at both compile and execution time.

Options, title, footnote

Tricky SAS Interview Questions For Freshers. Q- ,,,,,,

Tricky SAS Interview Questions For Experienced. Q- ,,,

Dataset secondhig is given as

data secondhig;

input Name $ Number;

cards;

sandeep

kuldeep

arvind

gajender

amit

ankit

abhishek

;

run;

Select those name having second highest numbers such that the output should be like:
Name Number
gajender
ankit

 

proc sql;

select name, number from secondhig where number in (select max(Number) as second from secondhig where number<(select max(Number)from secondhig));

quit;

I have a dataset concat having a variable a b & c. How to rename a b to e & f?

We will use the following code to rename a b to e f

data concat(rename=(a=e b=f));

set concat;

run;

What are the statements in Proc SQl?

Select, From, Where, Group By, Having, Order.

Why and when do you use Proc SQl?

Proc SQL is very convenient for performing table joins compared to a data step merge as it does not require the key columns to be sorted prior to join. A data step is more suitable for sequential observation-by-observation processing.
PROC SQL can save a great deal of time if u want to filter the variables while selecting or we can modify them, apply format and creating new variables, macro variables…as well as subsetting the data. PROC SQL offers great flexibility for joining tables.

What does the trace option do?

ODS Trace is used to find the names of the particular output objects when several of them are created by some procedure.
ODS TRACE ON;
ODS TRACE Off;

How would you identify a macro variable?

with Ampersand (&) sign

How would you define the end of a macro?

The end of the macro is defined by %Mend Statement

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).

How do you add a number to a macro variable?

Using %eval function or %sysevalf function if the number is a floating number.
Q. How we can call macros with in data step?
We can call the macro with
CALL SYMPUT,
Proc SQL ,
%LET statement. and macro parameters.

What is interleaving in SAS?

Interleaving combines individual, sorted SAS data sets into one sorted SAS data set. For each observation, the following figure shows the value of the variable by which the data sets are sorted. You interleave data sets using a SET statement along with a BY statement.
In the following example, the data sets are sorted by the variable Year.
We can sort and then join the datasets on Year with the below code.

Data combined;

Set data data

By Year;

Run;

Describe the ways in which you can create macro variables?

There are the ways to create macro variables:%Let
%Global
Call Symput
Proc SQl into clause
Macro Parameters.

What is the maximum length of the macro variable?

characters long.

What is Linear Regression?

Linear regression is a statistical technique where the score of a variable Y is predicted from the score of a second variable X. X is referred to as the predictor variable and Y as the criterion variable.

 What do you understand by the term Normal Distribution?

Data is usually distributed in different ways with a bias to the left or to the right or it can all be jumbled up. However, there are chances that data is distributed around a central value without any bias to the left or right and reaches normal distribution in the form of a bell-shaped curve. The random variables are distributed in the form of a symmetrical bell-shaped curve.

What does P-value signify about the statistical data?

P-value is used to determine the significance of results after a hypothesis test in statistics. P-value helps the readers to draw conclusions and is always between and .

  • P- Value > . denotes weak evidence against the null hypothesis which means the null hypothesis cannot be rejected.
  • P-value <= . denotes strong evidence against the null hypothesis which means the null hypothesis can be rejected.
  • P-value=.is the marginal value indicating it is possible to go either way.

How to create list output for cross-tabulations in proc freq?

To generate list output for cross-tabulations, add a slash (/) and the LIST option to the TABLES statement in your PROC FREQ step.
TABLES variable-*variable- < * … variable-n> / LIST;

What is the difference between do while and do until?

Main difference between the DO UNTIL and DO WHILE statements is that the DO WHILE expression is evaluated at the top of the DO loop. If the expression is false the first time it is evaluated, then the DO loop never executes. But DO UNTIL executes at least once

Difference between sum function and using “+” operator?

SUM function returns the sum of non-missing arguments. ‘+’ operator returns a missing value if any of the arguments are missing.

Refer This SAS Operators Guide to know more

What would be the result of the following SAS function (given that Dec, is Sunday)?

Weeks  = intck (‘week’,’ Dec ’d,’jan’d);
Years    = intck (‘year’,’ Dec ’d,’jan’d);
Months = intck (‘month’,’ Dec ’d,’jan’d);

Here, we will calculate the weeks between st December and st January . st December was a Sunday. So st January will be a Monday in the same week. Hence, Weeks =
Years = since both the days are in different calendar years.
Months = since both the days are in different months of the calendar.

Consider the following SAS Program:

data concat;

set a b;

run;

Where format of variable Revenue in dataset a is dollar. and format of variable Revenue in dataset b is dollar. . What would be the format of Revenue in resulting dataset (concat)?

dollar.
The format will be the variable name ‘dollar’ which will be of length numbers followed by two numbers after the decimal point.

Compare SAP BO with SAS BI.

Criteria SAP BO SAS BI
Why deploy? High-level visualization, customer-friendly Quick data integration with diverse sources
Presentation Excellent Average
Ad-hoc analysis Excellent Average
Mobile BI Good Excellent
Analytics Predictive analytics Easy analytics
Application Frontend suite to sort, view, and analyze BI data Combines BI and Analytics to deliver enterprise-grade data

Explain the SUBSTR function.

The SUBSTR function is used for extracting a string or replacing the contents of a character value.

Define the TRANSLATE function.

TRANSLATE Function: With this function, the characters specified in a string are replaced by the characters specified by users.

Explain PROC SORT.

PROC SORT sorts SAS data sets by variables so that a new data set can be prepared for further use.

Describe PROC UNIVARIATE.

PROC UNIVARIATE is used for the elementary numeric analysis, and it examines how data is distributed.

Elucidate the APPEND procedure.

The term ‘append’ means adding at the end.

In SAS, we can say that the APPEND procedure is a procedure adding one SAS data set to another SAS data set.

Explain the BMDP procedure.

For analyzing data, the BMPD procedure is used.

Define RUN-group Processing.

RUN-group processing is used to submit a PROC step using the RUN statement without ending the procedure.

Describe BY-group Processing.

The BY statement is used by the BY-group processing so that it can process data that are indexed, grouped, or ordered based on variables.

What do a CALENDAR procedure do?

The CALENDAR procedure shows data in a monthly calendar format from a SAS data set.

What are the functions used for character handling in SAS?

UPCASE and LOWCASE, known as the character functions, are used for character handling in SAS.

What is the use of the DIVIDE function?

The DIVIDE function is used to return the division result.

Explain the BOR function.

The BOR function is a bitwise logical operation used to return bitwise logical OR between two statements.

What do you mean by CALL PRXFREE Routine?

CALL PRXFREE routine is used for character string matching and for the allocation of free memory for Perl regular expression.

Explain CALL PRXCHANGE Routine.

CALL PRXCHANGE routine is used for performing the replacement of pattern matching.

Define the ANYDIGIT function.

The ANYDIGIT function is used to search for the first occurrence of a digit (numeral) in a string. It returns the position of the digit. If no digit is found, it returns a ‘’. By using an optional parameter, the ANYDIGIT function can begin the search at any given position in the string.

Syntax:

ANYDIGIT(character-value <,start>)

The character-value is any SAS character expression, and the term start is an optional parameter that specifies the position within the string to begin the search.

What do you understand by CALL MISSING Routine?

The character or numeric variables that are specified can be assigned missing values through the CALL MISSING routine.

What do you mean by the ALTER= Data Set option?

It is used for assigning an ALTER password, which will stop users from changing the file.

Explain the COMPRESS= Data set option.

It is used for compressing the data into new output.

Define Formats.

Instructions used by SAS for writing data values are known as Formats.

How are Variable Formats handled by PROC COMPARE?

Variable formats are handled by PROC COMPARE as it is used for comparing unformatted values.

What are the features of the SAS system?

It provides IPv support, new TrueType fonts, extended time notations, the restart mode,

What is the use of $BASEX?

By using $BASEX encoding, the character data is converted into ASCII text.

Describe the VFORMATX function.

The VFORMATX function is used to return the format that is assigned with the value of a given statement.

Define the STD function.

With the help of the STD function, the standard deviation will be returned for the nonmissing statements.

How can a SAS program be validated?

With the help of the STD function, the standard deviation will be returned for the nonmissing statements.

What is Debugging?

Debugging is a technique for testing the program logic, and this can be done with the help of Debugger.

Elucidate the FILECLOSE data set option.

When a data set is closed, its tape positioning is defined by FILECLOSE.

What does ODS stand for?

ODS stands for the Output Delivery System.

What does CDISC stand for?

CDISC stands for Clinical Data Interchange Standards Consortium.

Which method is used to copy blocks of data?

The method used for copying blocks of data is defined as the block I/O method.

What is the procedure for copying an entire library?

The copy statement should be followed by an input data library and an output data library.

Define the max() function.

The max() function is used to return the largest value.

What is the use of the SYSRC function?

It is a function that provides a system error number.

Explain SAS. What are the functions it performs?

SAS, i.e., Statistical Analysis System, is a combined set of software solutions that helps users analyze data.

  • It can change, manipulate, analyze, and retrieve data.
  • With SAS, numerical analysis can be done.
  • We have several SAS tools to succeed at writing programs that analyze data and create reports.
  • We get quality data analytics with SAS.

Describe the basic structure of a SAS program.

A SAS program consists of:

  • A DATA step, which recovers and manipulates data
  • A PROC step, which interprets the data

What is DATA Step?

The main function of a DATA step is to create SAS data sets by manipulating data.

What is PDV?

Program Data Vector (PDV) is the area of memory where data sets are created through the SAS system, one at a time. When a program is executed, an Input Buffer is created that reads data values and makes them assigned to their respective variables.

In SAS, which statement does not perform automatic conversions in comparisons?

With WHERE statements, automatic conversions cannot be performed because WHERE statement variables exist in the data set.

What is the difference between the NODUPKEY and NODUP options?

Identical observations are checked and removed through the NODUP option. On the other hand, the NODUPKEY option checks for all BY variable values and if found, it will eliminate those.

What is the use of the function PROC SUMMARY?

PROC SUMMARY is the same as PROC MEANS, i.e., it will give descriptive statistics but will not give output as default. We have to give an option ‘print’, and then it will give the output.

What are PROC PRINT and PROC CONTENTS used for?

PROC PRINT outputs a list of the values of some or all variables in a SAS data set. PROC CONTENTS tells the structure of the data set rather than the data values.

What does PROC GLM do?

The functions of PROC GLM are covariance analysis, variance analysis, multivariate, and repeated analysis of variance.

What is SAS Informat?

Informat is an instruction that SAS uses to read data values. It is used to read or input data from the external files.

What does the function CATX syntax do?

CATX syntax inserts delimiters, removes trailing and leading blanks, and returns a concatenated character string.

Explain the use of PROC GPLOT.

PROC GPLOT identifies the data set that contains the plot variables. It has more options and, therefore, can create more colorful and fancier graphics.

How to sort in descending order?

By using the DESCENDING keyword in the PROC SORT code, we can sort in descending order.

How to convert a numeric variable to a character variable?

You must create a differently-named variable using the PUT function.

The example below shows the use of the PUT function.
charvar=put(numvar, .) ;

How to convert a character variable to a numeric variable?

You must create a differently-named variable using the INPUT function.

The example below shows the use of the INPUT function.
numvar=input(charvar,.);

What’s the difference between VAR A – A and VAR A — A?

Single Dash :It is used to specify consecutively numbered variables. A-A implies A, A and A.
Double-dash :It is used to specify variables based on the order of the variables as they appear in the file,regardless of the name of the variable. A–A implies all the variables from A to A in the order they appear in the data set.
Example :The order of variables in a data set : ID Name A A C A
So using A-A would returnA A A. A–A would returnA A C A.

Difference between PROC MEANS and PROC SUMMARY?

. Proc MEANS by default produces printed output in the OUTPUT window whereas Proc SUMMARY does not. Inclusion of the PRINT option on the Proc SUMMARY statement will output results to the output window.
. Omitting the var statement in PROC MEANS analyses all the numeric variable whereas Omitting the variable statement in PROC SUMMARY produces a simple count of observation.

How to produce output in the OUTPUT window using PROC SUMMARY?
Use PRINT option.

proc summary data=retail print;

class services;

var investment;

run;

. Can PROC MEANS analyze ONLY the character variables?

No, Proc Means requires at least one numeric variable.

Difference between CEIL and FLOOR functions?

The ceil function returns the smallest integer greater than/equal to the argument whereas the floor returns the greatest integer less than/equal to the argument.
For example: ceil(.) returns whereas floor(.) returns .

What do put and the input functions do?

  • Input function: Character values are converted into numeric values.
  • Put function: Numeric values are converted into character values.

What is the difference between VAR B – B and VAR B — B?

A single dash specifies the consecutively numbered variables. A double dash specifies the variables available within the data set.

Example:
Data Set: ID NAME B B C B

  • B – B would return B B B
  • B– B would return B B C B

What is the basic syntax style in SAS?

Important points for running a SAS program are:

  • A DATA statement, which names our data set
  • Names of the variables in our data set are described by the INPUT statement
  • The statement should end with a semicolon (;)
  • Space should be given between the word and the statement

What are the special Input Delimiters?

Input delimiters are DLM and DSD.

What is the difference between a format and an informat?

  • Format: A format is to write data, i.e., WORDIATE and WEEKDATEW
  • Informat: An informat is to read data, i.e., comma, dollar, and date (MMDDYYw, DATEw, TIMEw, and PERCENTw)

Describe any one SAS function.

TRIM: TRIM removes the trailing blanks from a character expression.

Example:

Str = ‘my’;

Str = ‘dog’;

Result = TRIM (Str)(Str);

Result = ‘mydog’

What is PDV) and what are its functions?

Program Data Vector (PDV) is a logical area in memory.

  • SAS creates a data set, one observation at a time.
  • An Input Buffer is created at the time of compilation, for holding a record from external file.
  • PDV is created followed by the creation of the Input Buffer.
  • SAS builds the data set in the PDV area of memory

Distinguish between SAS, Stata, and SPSS.

Each package offers its own unique strengths and weaknesses. As a whole, SAS, Stata, and SPSS form a set of tools that can be used for a wide variety of statistical analyses. With Stat/Transfer, it is very easy to convert data files from one package to another in just a matter of seconds or minutes.

Therefore, there can be quite an advantage switching from one analysis package to another depending on the nature of our problem. For example, if we are performing analysis using mixed models, we might choose SAS, but if we are doing logistic regression, we might choose Stata. Moreover, if we are doing an analysis of variance, then we might choose SPSS.

If we are frequently performing statistical analysis, it is strongly recommended to consider making each one of these packages part of our toolkit for data analysis.

What are the uses of SAS?

SAS/ETS software provides tools for a wide variety of applications in business, government, and academia. Major uses of SAS/ETS procedures are economic analysis, forecasting, economic and financial modeling, time series analysis, financial reporting, and manipulation of time-series data.

The common theme relating to many applications of the software is time-series data. SAS/ETS software is useful whenever it is necessary to analyze or predict processes that take place over time or to analyze models that involve simultaneous relationships.

Although SAS/ETS software is most closely associated with business, finance, and economics, time-series data also arise in many other fields. SAS/ETS software is useful whenever time dependencies, simultaneous relationships, or dynamic processes complicate data analysis. For example, an environmental quality study might use SAS/ETS software’s time-series analysis tools to analyze pollution emissions data. A pharmacokinetic study might use SAS/ETS software’s features for nonlinear systems to model the dynamics of drug metabolism in different tissues.

How do we create a SAS data set with Compressed Observations?

To create a compressed SAS data set, we use the COMPRESS=YES option as an output DATA set option or in an OPTIONS statement. Compressing a data set reduces its size by reducing repeated consecutive characters or numbers to -byte or -byte representations.

To uncompress observations, we must use a DATA step to copy the data set and use the option COMPRESS=NO for the new data set.

The advantages of using a SAS compressed data set are that there would be reduced storage requirements for the data set and only fewer input/output operations would be necessary to read from and write to the data set during processing.

The disadvantages include not being able to use the SAS observation number to access an observation. The CPU time required to prepare compressed observations for input/output observations is increased because of the overhead of compressing and expanding the observations. We have to remember that if there are a few repeated characters, a data set can occupy more space in the compressed form than in the uncompressed form, due to the higher overhead per observation. For more details on SAS compression see SAS Language: Reference, Version , First Edition, Cary, NC: SAS Institute Inc., .

How can we minimize the space requirement of a huge data set in SAS for window?

When we are working with large data sets, we can do the following steps to reduce space requirements:

  • Split the huge data set into smaller data sets
  • Clean up our working space as much as possible at each step
  • Use data set options (keep= or drop=) or statements (keep or drop) to limit to only the variables needed
  • Use IF statement or OBS= to limit the number of observations
  • Use WHERE= or WHERE or index to optimize the WHERE expression to limit the number of observations in a PROC Step and a DATA Step
  • Use length to limit the bytes of variables
  • Use a _null_ data set name when we don’t need to create a data set
  • Compress the data set using system options or data set options (COMPRESS=yes or COMPRESS=binary)
  • Use SQL to do merge, summary, sort, etc. rather than a combination of PROC Step and DATA Step with temporary data sets.

What does P-value signify about the statistical data?

P-value is used to determine the observed result of the test in statistics. P-value makes the task easy for the users by providing a conclusion, and the value is always between and .

  • If P-Value > . then it denotes weak evidence against the null hypothesis, which means the null hypothesis cannot be declined.
  • If P-value <= ., it denotes strong evidence against the null hypothesis and indicates that the null hypothesis can be rejected.
  • P-value=., which is the marginal value, indicates that it is possible to go either way.

Explain the difference between the SAS sum function and using the “+” operator?

In SAS, the sum function returns the sum of missing and non-missing arguments, whereas the “+” operator returns a missing value if any argument or value is missing.

Example:

data mydata;

input x y z;

cards;

.

.

.

;

run;

data mydata;

set mydata;

a=sum(x,y,z);

p=x+y+z;

Run;

In this code, the value of p is missing from the th, th, and th observation

Output:

a p

Call Statement In SAS

Functions and CALLs Description
DIM No. of Array elements
HBOUND Array’s Upper bound
LBOUND Array’s Lower bound
BAND Function Logical bitwise AND operation
BLSHIFT Function Logical bitwise left shift operation
BNOT Function Logical bitwise NOT operation
BOR Function Logical bitwise OR operation

How SUBSTR function works?

The SUBSTR function is used to extract substring from a character variable.
The SUBSTR function has three arguments:
SUBSTR ( character variable, starting point to begin reading the variable, numberof characters to read from the starting point)
There are two basic applications of the SUBSTR function:
RIGHT SIDE APPLICATION

data _null_ ;

phone='() -‘ ;

area_cd=substr(phone, , ) ;

put area_cd=;

run;

Result : In the log window, it writes area_cd= .
LEFT SIDE APPLICATION
It is used to change just a few characters of a variable. data _null_ ; phone='() -‘ ; substr(phone, , )=” ; put phone=; run ; Result : The variable PHONE has been changed from() – to () -.

 

So, this brings us to the end of the SAS Interview Questions blog.This Tecklearn ‘Top SAS Interview Questions and Answers’ helps you with commonly asked questions if you are looking out for a job in Data Science Domain. If you wish to learn SAS and build a career in Data Science domain, then check out our interactive SAS Training for SAS BASE Certification, that comes with 24*7 support to guide you throughout your learning period.

https://www.tecklearn.com/course/sas-training-for-sas-base-certification/

SAS Training for SAS BASE Certification

About the Course

SAS Certification Training is intended to make you an expert in SAS programming and Analytics. You will be able to analyse and write SAS code for real problems, learn to use SAS to work with datasets, perform advanced statistical techniques to obtain optimized results with Advanced SAS programming.  In this SAS online training course, you will also learn SAS macros, Machine Learning, PROC SQL, procedure, statistical analysis and decision trees. You will also work on real-life projects and prepare for the SAS Certified Base Programmer certification exam. Upon the completion of this SAS online training, you will have enough proficiency in reading spreadsheets, databases, using SAS functions for manipulating this data and debugging it.

Why Should you take SAS Training?

  • The average salary for a Business Intelligence Developer skilled in SAS is $100k (PayScale salary data)
  • SAS, Google, Facebook, Twitter, Netflix, Accenture & other MNCs worldwide are using SAS for their Data analysis activities and advance their existing systems.
  • SAS is a Leader in 2017 Gartner Magic Quadrant for Data Science Platform.

What you will Learn in this Course?

Introduction to SAS

  • Introduction to SAS
  • Installation of SAS
  • SAS windows
  • Working with data sets
  • Walk through of SAS windows like output, search, editor etc

SAS Enterprise Guide

  • How to read and subset the data sets
  • SET Statement
  • Infile and Infile Options
  • SAS Format -Format Vs Informat

SAS Operators and Functions

  • Using Variables
  • Defining and using KEEP and DROP statements
  • Output Statement
  • Retain Statement
  • SUM Statement

Advanced SAS Procedures

  • PROC Import
  • PROC Print
  • Data Step Vs Proc
  • Deep Dive into Proc

Customizing Datasets

  • SAS Arrays
  • Useful SAS Functions
  • PUT/INPUT Functions
  • Date/Time Functions
  • Numeric Functions
  • Character Functions

SAS Format and SAS Graphs

  • SAS Format statements
  • Understanding PROC GCHART, various graphs, bar charts: pie, bar

Sorting Techniques

  • NODUP
  • NODUKEY
  • NODUP Vs NODUKEY

Data Transformation Function

  • Character functions, numeric functions and converting variable type
  • Use functions in data transformation

Deep Dive into SAS Procedures, Functions and Statements

  • Find Function
  • Scan Function
  • MERGE Statement
  • BY Statement
  • Joins
  • Procedures Vs Function
  • Where Vs If
  • What is Missover
  • NMISS
  • CMISS

PROC SQL

  • SELECT statement
  • Sorting of Data
  • CASE expression
  • Other SELECT statement clauses
  • JOINS and UNIONS

Using SAS Macros

  • Benefits of SAS Macros
  • Macro Variables
  • Macro Code Constituents and Macro Step
  • Positional Parameters to Macros

 

Got a question for us? Please mention it in the comments section and we will get back to you.

 

0 responses on "Top SAS Interview Questions and Answers"

Leave a Message

Your email address will not be published. Required fields are marked *