Logische Expressies worden gebruikt om berekeningen te specificeren en geven een TRUE of FALSE resultaat. Ze worden gebruikt in de definitie van:

  • Not Asked codewaarden voor alle variabelen, bijvoorbeeld UNLESS Q1=1
  • No Reply codewaarden voor afgeleide variabelen
  • Valid codes van afgeleide single en multiple response variabelen
  • Filters voor analyses
  • Niet van toepassing (N/A) waarden voor rapportinstructies
  • Available waarden voor rapporten en analyses
  • Zoekcriteria bij het bewerken van (raw) case data

Logische forumles bevatten Logische Operatoren die toegepast worden op  Logische Operanden. Bijvoorbeeld:

SEX=1 AND (AGE=(2,3) OR SEG=1)

Logische operanden kunnen enkel de waarde TRUE of FALSE krijgen

Tabel van logische operanden voor gebruik in logische expressies

Operand

Omschrijving

Constante

Eén van de waarden TRUE of FALSE. Synoniemen kunnen gebruikt worden als alternatieven om de betekenis van een expressie in een gegeven context te verduidelijken.

Synoniemen voor TRUE zijn ALL en YES. Synoniemen voor FALSE zijn NON en NO

Logische functies

De naam van een logische functie voorafgegaan door een variabele naam. Het resultaat is TRUE of FALSE

Vergelijking

Vergelijkingen geven een variabele of constante waarde een TRUE of FALSE. De effecten van relationele operatoren worden uitgebreid besproken in de sectie Relationele Operatoren hieronder.


Logische functies

Een Logische Functie wordt gebruikt om de waarheid van een aspect van een variabele te bepalen. Om een functie met een variabele te gebruiken, wordt een functienaam of symbool nà de variabele naam geplaatst.

Bijvoorbeeld : om te bepalen of de variabele met de benaming AGE missende waarden heeft, gebruik je : AGE MISSING

Laat minimaal 1 spatie tussen de functienaam en de variabele naam

Tabel met logische functies voor gebruik in logische expressies:

Functie

Omschrijving

ER

Geeft een TRUE resultaat telkens de variabele een waarde Error als resultaat heeft

NA

Geeft een TRUE resultaat telkens de variabele een waarde Not Asked als resultaat heeft

NR

Geeft een TRUE resultaat telkens de variabele een waarde No Reply als resultaat heeft 

MISSING

 Geeft een TRUE resultaat telkens de variabele een waarde Error, Not Asked of No Reply als resultaat heeft

OK

Tegenovergestelde van MISSING hierboven. Geeft een TRUE resultaat wanneer de variabele een geldig antwoord heeft


Relationele operatoren

Relational Operatoren worden gebruikt om single of multiple waarden te vergelijken. Deze kunnen de vorm krijgen van een variabele naam, een numerieke expressie of een numerieke lijst

Om te bepalen of de variabele met de benaming REGION code 4 heeft gekregen, specifieer je REGION=4

Het is dikwijls nodig om te bepalen of een variabele een of meerdere waarden heeft. Bijvoorbeeld, om te testen of de waarde in REGION 2, 3 of 4 was, specifieer je REGION=(2,3,4). Merk op dat je bij meerdere opties haakjes gebruikt. Volgens de richtlijnen voor numerieke lijsten is het makkelijker / korter om bijvoorbeeld REGION=(2~4) of REGION=(2 to 4) te schrijven.

Tabel met relationele operatoren

Operator

Omschrijving

=

MT

Is gelijk aan... (matches). 

  • Bij het vergelijken van single of quantity operanden is het resultaat TRUE wanneer de eerste operand numeriek equivalent is aan de tweede. 
  • Is één van de twee te vergelijken operanden een multiple dan is het resultaat TRUE wanneer één van de codes uit de eerste operand ook voorkomt in de tweede operand. 
  • Wanneer de beide operanden literal (tekst) variabelen zijn, dan is het resultaat TRUE wanneer de tweede operand een onderdeel (substring) is van de eerste. 
  • Wanneer beide operanden datums of tijden zijn, dan is het resultaat TRUE wanneer beiden dezelfde datum of hetzelfde tijdstip vermelden.        

==

EQ

Is identiek aan... (equals). Het resultaat is TRUE wanneer de eerste operand identiek is aan de tweede. 

  • Voor single, quantity, date en time operanden geeft de EQ operator hetzelfde resultaat als MT hierboven.
  • Is één van de operanden een multiple dan is het resultaat TRUE enkel indien exact dezelfde codes zijn gekozen in beide operanden
  • Bij literal respons is het resultaat TRUE wanneer beide strings identiek zijn                

<>

NE

Verschilt van... (is not equal). Het resultaat is TRUE wanneer de eerste operand verschilt van de tweede. Deze operator levert het omgekeerde van de EQ operator hierboven, maar niet het tegenovergestelde van de MT operator (=).

<

LT

Minder dan. Het resultaat is TRUE wanneer:

  • beide operanden single response of quantity response zijn, en de eerste operand minder is dan de tweede
  • beide operanden datums zijn, en de eerste operand een eerdere datum is dan de tweede operand
  • beide operanden tijdstippen zijn, en de eerste operand een eerder tijdstip is dan de tweede
  • beide operanden literal (tekst) waarden zijn, en de eerste operand alfabetisch voor de tweede operand valt

Is één van de operanden een multiple response waarde of een error dan is het resultaat error

<=

LE

Minder dan of gelijk aan. Het resultaat is TRUE wanneer:

  • beide operanden single response of quantity response zijn, en de eerste operand kleiner of gelijk aan de tweede is
  • beide operanden datums zijn, en de eerste operand een eerdere of gelijke datum is dan de tweede
  • beide operanden tijdstippen zijn, en de eerste operand een eerder of gelijk tijdstip is dan de tweede
  • beide operanden literal (tekst) waarden zijn, en de eerste operand alfabetisch voor of op de zelfde plaats als de tweede operand valt

Is één van de operanden een multiple response waarde of een error dan is het resultaat error

>

GT

Groter dan. Het resultaat is TRUE wanneer:

  • beide operanden single response of quantity response zijn, en de eerste operand groter dan de tweede is
  • beide operanden datums zijn, en de eerste operand een latere datum is dan de tweede
  • beide operanden tijdstippen zijn, en de eerste operand een later tijdstip is dan de tweede
  • beide operanden literal (tekst) waarden zijn, en de eerste operand alfabetisch nà de tweede operand valt

Is één van de operanden een multiple response waarde of een error dan is het resultaat error

>=

GE

Groter dan of gelijk aan. Het resultaat is TRUE wanneer:

  • beide operanden single response of quantity response zijn, en de eerste operand groter dan of gelijk aan de tweede is
  • beide operanden datums zijn, en de eerste operand een latere of gelijke datum is dan de tweede
  • beide operanden tijdstippen zijn, en de eerste operand een later of gelijk tijdstip is dan de tweede
  • beide operanden literal (tekst) waarden zijn, en de eerste operand alfabetisch nà of op de zelfde plaats als de tweede operand valt

Is één van de operanden een multiple response waarde of een error dan is het resultaat error

@

Is een substring van... (onderdeel van). Het resultaat is TRUE wanneer beide operanden strings zijn, en de eerste operand de tweede operand bevat


Logische Operatoren

Tabel met logische binaire operatoren voor gebruik in logiscshe expressies

Operator

Omschrijving

&

AND

Het resultaat is TRUE wanneer beide operanden TRUE zijn. Geeft één van de operanden een ERROR, dan is het resultaat een ERROR. Indien één van de twee operanden ontbreekt of FALSE is, dan is het resultaat FALSE

|

OR

Indien één van de operanden een ERROR is, dan is het resultaat een ERROR. Is één van de operanden TRUE dan is het resultaat TRUE


Tabel met logische unitaire operatoren voor gebruik in logische expressies

Operator

Omschrijving

!

NOT

Is de operand een ERROR, dan is het resultaat een ERROR. Is de operand TRUE dan is het resultaat FALSE, is de operand FALSe, dan is het resultaat TRUE.

UNLESS

Is hetzelfde als NOT (hierboven). Bijvoorbeeld UNLESS Q1=1 is hetzelfde als NOT Q1=1