DATA Step, Macro, Functions and more

What does this line mean?

Accepted Solution Solved
Reply
Contributor
Posts: 53
Accepted Solution

What does this line mean?

data lab_valid (where=(troponin=1 & result_conv ne .& year>=2011));
set clean.lab_troponin

Specifically, I'm not sure what the "ne .&" means? 

 

Thank you! 


Accepted Solutions
Solution
‎10-26-2017 08:49 PM
SAS Super FREQ
Posts: 9,424

Re: What does this line mean?

Hi:

  That WHERE option is a test for 3 things to be true in order for the observation to be selected. So separate out the & first, and replace it with the logical AND, then the option becomes:

where=( troponin=1 AND result_conv ne . AND year >= 2011)

 

  So, an observation will only be selected if these 3 conditions are all true:

the variable TROPONIN must have a value equal to 1

the variable RESULT_CONV must have a value NOT equal to .   (. means a MISSING value for a numeric variable)

the variable YEAR must have a value that is greated than or equal to 2011

 

  With a SAS numeric variable a . is used to represent a missing value. For a character variable a space or blank is used to represent a missing value.

 

Hope this helps,

Cynthia

View solution in original post


All Replies
SAS Super FREQ
Posts: 508

Re: What does this line mean?

The period is the most common type of missing value.  Quite independently, ampersand means AND.  The code would be clearer if there were a space between the two.

Contributor
Posts: 53

Re: What does this line mean?

Posted in reply to WarrenKuhfeld
This works as a solution too! THANK YOU!!!!
Solution
‎10-26-2017 08:49 PM
SAS Super FREQ
Posts: 9,424

Re: What does this line mean?

Hi:

  That WHERE option is a test for 3 things to be true in order for the observation to be selected. So separate out the & first, and replace it with the logical AND, then the option becomes:

where=( troponin=1 AND result_conv ne . AND year >= 2011)

 

  So, an observation will only be selected if these 3 conditions are all true:

the variable TROPONIN must have a value equal to 1

the variable RESULT_CONV must have a value NOT equal to .   (. means a MISSING value for a numeric variable)

the variable YEAR must have a value that is greated than or equal to 2011

 

  With a SAS numeric variable a . is used to represent a missing value. For a character variable a space or blank is used to represent a missing value.

 

Hope this helps,

Cynthia

Contributor
Posts: 53

Re: What does this line mean?

Posted in reply to Cynthia_sas

Thank you so much!

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 4 replies
  • 186 views
  • 2 likes
  • 3 in conversation