1. Missing character values are represented by a blank. You can use quotes without a space or with the space:
if name = "" then ... ;
if name = " " ... ;
You can use the MISSING function. You can subset with the WHERE statement: where Name is missing;. As you noted, there are many ways to search for missing character values.
Missing numerics are represented by the dot or period ( . ) without the quotes.
where Age = . ;
if Weight = . then Category = 'Unknown';
2. C is the only correct answer. You cannot use the IF statement inside a PROC step, so A and D are incorrect. The code in answer B, where position = '1B' or '2B' or '3B';, compares the variable Position to '1B' only. The '2B' and '3B' are not compared to any variable, so they are both treated as a declarative text string, which is always true. When you run the program, you will get all the rows.
proc means data=sashelp.baseball; class Position; var nRuns nRBI; where position = '1B' or '2B' or '3B';
run;
You can rewrite this to include the variable Position before each character string:
proc means data=sashelp.baseball; class Position; var nRuns nRBI; where position = '1B' or position = '2B' or position = '3B';
run;
The above WHERE statement is the same as where position in('1B' '2B '3B'); in answer C. Commas are not necessary between the values, but I use them.
where position in ('1B', '2B, '3B');
3. A is the only correct answer. The output displays all numeric values and the minimum value of SepalLength is 54, as specified by the where SepalLength > 53; statement. The output lists all numeric variables, not just SepalLength, so B is incorrect. The data is not broken into separate tables of the different Species, so C is incorrect. The data is not grouped by Specifies in one table, so D is incorrect.
If you have any content questions, please send email to training@sas.com.
... View more