LoopOverList
A loop creates multiple versions of a set of commands by iterating over a list of variables, numbers, or strings.
Properties
Name  | 
Type  | 
Description  | 
|
|---|---|---|---|
Iterators  | 
1..n  | 
Describes one or more iteration processes in this loop.  | 
|
Commands  | 
1..n  | 
Commands generated by the loop expanded by replacing tokens representing variables, numbers, or strings with their values.  | 
|
Updated  | 
0..1  | 
When TRUE, the loop has been expanded into separate commands.  | 
Properties Inherited from TransformBase
Name  | 
Type  | 
Description  | 
|
|---|---|---|---|
ProducesDataframe  | 
0..n  | 
Signify the dataframe which this transform produces.  | 
|
ConsumesDataframe  | 
0..n  | 
Signify the dataframe which this transform acts upon.  | 
Properties Inherited from CommandBase
Name  | 
Type  | 
Description  | 
|
|---|---|---|---|
Command  | 
1..1  | 
The type of command  | 
|
SourceInformation  | 
0..n  | 
Information about the source of the command.  | 
|
MessageText  | 
0..n  | 
Adds a message that can be displayed with the command.  | 
Item Type Hierarchy
- CommandBase
 - TransformBase
 LoopOverList
Relationships
The following identified item types reference this type.
Example_1_SPSS_LoopOverList
DO REPEAT existVar=firstVar TO var5
         /newVar=new1 TO new5
         /value=1 TO 5.
COMPUTE newVar=existVar*value.
END REPEAT.
{"Command": "LoopOverList",
      "sourceInformation": {
         "originalSourceText": "DO REPEAT existVar=firstVar TO var5
                                                     /newVar=new1 TO new5
                                                     /value=1 TO 5.
                                                     COMPUTE newVar=existVar*value.
                                                     END REPEAT."
                                                     },
"Iterators": [
    {"IteratorSymbolName": "existVar",
     "IteratorValues":
    {"$type":"VariableRangeExpression",
        "First": "firstVar",
        "Last": "var5"}
     },
    {"IteratorSymbolName": "newVar",
     "IteratorValues":
    {"$type": "VariableListExpression",
    "Variables": [
        {"$type":"VariableRangeExpression",
        "First": "new1",
        "Last": "new5"}
        ]
        }
    },
    {"IteratorSymbolName": "value",
     "IteratorValues":
    {"$type": "NumberListExpression",
    "Variables": [
        {"$type":"NumberRangeExpression",
        "From": "1",
        "To": "5",
        "By": "1"}
        ]
        }
    }
    ],
"IteratorCommands:" [
        {"Command": "compute",
        "VariableName":
                     {"$type": "IteratorSymbolExpression",  "IteratorSymbolName": "newVar"},
        "Expression":
             {"$type":"FunctionCallExpression",
                "Function": "Multiplication",
                "IsSDTLName":"True",
                "Arguments": [
                {"ArgumentName": "EXP1",
                "ArgumentValue":
                             {"$type": "IteratorSymbolExpression",
                             "IteratorSymbolName": "existVar"}
                             },
                {"ArgumentName": "EXP2",
                "ArgumentValue":
                             {"$type": "IteratorSymbolExpression",
                             "IteratorSymbolName": "value"}
                     }
                     ]
             }
             }
    ],
"Commands":[
********* Commands expanded in SDTL  here ************
     ]
}
Example_1_Stata_LoopOverList
foreach partyidk of varlist PARTYID1 PARTYID2 PARTYID3 {
    replace democrats=democrats+1 if `partyidk'==1
    }
{"Command": "LoopOverList",
      "sourceInformation": {
         "originalSourceText": "foreach partyidk of varlist PARTYID1 PARTYID2 PARTYID3 {
                                                             replace democrats=democrats+1 if `partyidk'==1 }"
                                                     },
"Iterators": [
             {"IteratorSymbolName": "partyidk",
             "IteratorValues":
                     {"$type": "VariableListExpression",
                     "Variables": [
                             {"$type":"VariableSymbolExpression", "VariableName": "PARTYID1" },
                             {"$type":"VariableSymbolExpression", "VariableName": "PARTYID2" },
                             {"$type":"VariableSymbolExpression", "VariableName": "PARTYID3" },
                             ]
                     }
     },
    ],
"IteratorCommands:" [
        {"Command": "compute",
        "VariableName":
                     {"$type": "VariableSymbolExpression",  "VariableName": "democrats"},
             "Expression":
             {"$type":"FunctionCallExpression",
                "Function": "Addition",
                "IsSDTLName":"True",
                "Arguments": [
                             {"ArgumentName": "EXP1",
                             "ArgumentValue":
                                     {"$type": "VariableSymbolExpression",  "VariableName": "democrats"}
                             },
                             {"ArgumentName": "EXP2",
                             "ArgumentValue":
                                             {"$type": "NumericConstantExpression", "Value": "1"}
                             }
                     ]
             },
             "Condition":
                     {"FunctionCallExpression":
                             {"$type":"FunctionCallExpression",
                "Function": "eq",
                "IsSDTLName":"True",
                "Arguments": [
                             {"ArgumentName": "EXP1",
                             "ArgumentValue":
                                     {"$type": "IteratorSymbolExpression",  "IteratorSymbolName": "partyidk"}
                             },
                             {"ArgumentName": "EXP2",
                             "ArgumentValue":
                                     {"$type": "NumericConstantExpression", "Value": "1"}
                             }
                     ]
             }
             }
    ],
"Commands":[
********* Commands expanded in SDTL  here ************
     ]
}
Example_2_SPSS_LoopOverList
LOOP #I=1 TO 5 IF (Y GT 10).
COMPUTE X=X+1.
END LOOP.
{"Command": "LoopOverList",
      "sourceInformation": {
         "originalSourceText": "LOOP #I=1 TO 5 IF (Y GT 10).
                                                             COMPUTE X=X+1.
                                                             END LOOP."
                                                     },
"Iterators": [
    {"IteratorSymbolName": "#I",
     "IteratorValues":
    {"$type": "NumberListExpression",
    "Values": [
        {"$type":"NumberRangeExpression",
        "From": "1",
        "To": "5",
        "By": "1"}
        ]
        }
    }
    ],
"IteratorCommands:" [
             {"Command": "DoIf",
             "Condition":
             {"$type":"FunctionCallExpression",
                "Function": "gt",
                "IsSDTLName":"True",
                "Arguments": [
                {"ArgumentName": "EXP1",
                "ArgumentValue":
                             {""$type": "VariableSymbolExpression",  "VariableName": "Y"}
                             },
                {"ArgumentName": "EXP2",
                "ArgumentValue":
                             {"$type": "NumericConstantExpression",
                             "Value": "10"}
                                     }
                                     ]
             "Commands": [
        {"Command": "compute",
        "VariableName":
                     {"$type": "VariableSymbolExpression",  "VariableName": "X"},
      "expression":
             {"$type":"FunctionCallExpression",
                "Function": "Addition",
                "IsSDTLName":"True",
                "Arguments": [
                {"ArgumentName": "EXP1",
                "ArgumentValue":
                             {""$type": "VariableSymbolExpression",  "VariableName": "X"}
                             },
                {"ArgumentName": "EXP2",
                "ArgumentValue":
                             {"$type": "NumericConstantExpression",
                             "Value": "1"}
                     }
                     ]
             }
             }
             ]
             ],
"Commands":[
********* Commands expanded in SDTL  here ************
     ]
}
Example_2_Stata_LoopOverList
forvalues k = 0/9  {
   replace idealfam=`k' if `k'==chldidel
    }
{"Command": "LoopOverList",
      "sourceInformation": {
         "originalSourceText": "forvalues k = 0/9  {
                                                             replace idealfam=`k' if `k'==chldidel }"
                                                     },
"Iterators": [
             {"IteratorSymbolName": "k",
             "IteratorValues":
                     {"$type": "NumberRangeExpression",
                             "From": "0",
                             "To": "9",
                             "By": "1"
                     }
     },
    ],
"IteratorCommands:" [
        {"Command": "compute",
        "VariableName":
                     {"$type": "VariableSymbolExpression",  "VariableName": "idealfam"},
             "Expression":
                     {"$type": "IteratorSymbolExpression",  "IteratorSymbolName": "k"}
             },
             "Condition":
                             {"$type":"FunctionCallExpression",
                             "Function": "eq",
                             "IsSDTLName":"True",
                             "Arguments": [
                                     {"ArgumentName": "EXP1",
                                     "ArgumentValue":
                                             {"$type": "VariableSymbolExpression",  "VariableName": "chldidel"}
                                     },
                                     {"ArgumentName": "EXP2",
                                     "ArgumentValue":
                                             {"$type": "IteratorSymbolExpression",  "IteratorSymbolName": "k"}
                                     }
                             ]
                             }
    ],
"Commands":[
********* Commands expanded in SDTL  here ************
     ]
}
Example_3_SPSS_LoopOverList
SET MXLOOPS 10
LOOP .
COMPUTE X=X+1.
END LOOP.
{"Command": "LoopOverList",
      "sourceInformation": {
         "originalSourceText": "SET MXLOOPS 10
                                                             LOOP .
                                                             COMPUTE X=X+1.
                                                             END LOOP."
                                                     },
"Iterators": [
    {"IteratorSymbolName": "",
     "IteratorValues":
    {"$type":"NumberRangeExpression",
        "From": "1",
        "To": "10",
        "By": "1"}
    }
    ],
"IteratorCommands:" [
        {"Command": "compute",
        "VariableName":
                     {"$type": "VariableSymbolExpression",  "VariableName": "X"},
      "expression":
             {"$type":"FunctionCallExpression",
                "Function": "Addition",
                "IsSDTLName":"True",
                "Arguments": [
                {"ArgumentName": "EXP1",
                "ArgumentValue":
                             {""$type": "VariableSymbolExpression",  "VariableName": "X"}
                             },
                {"ArgumentName": "EXP2",
                "ArgumentValue":
                             {"$type": "NumericConstantExpression",
                             "Value": "1"}
                     }
                     ]
             }
             }
             ],
"Commands":[
********* Commands expanded in SDTL  here ************
     ]
}