index(): turn survey answers into labels
Medium
A feedback survey stores each answer as the position of the option chosen from ri!options: choosing the third option saves 3. Turn one person's answers into labels, in question order:
- a position in the options — that option's label
0— the question was skipped:"Skipped"- a position past the end — that option has since been removed from the survey:
"(removed)"
Each answer is handled on its own, so one odd answer never spoils the rest.
Inputs
ri!options— List of Textri!answers— List of Integer
ri! Rule Inputs
ri!optionsList of Text{
"Poor",
"Okay",
"Great"
}ri!answersList of Integer{
3,
1
}Example 1 — Two answers, in question order
Input: ri!options
{
"Poor",
"Okay",
"Great"
}Input: ri!answers
{
3,
1
}Output:
{
"Great",
"Poor"
}Example 2 — A skipped question
Input: ri!options
{
"Poor",
"Okay",
"Great"
}Input: ri!answers
{0}Output:
{"Skipped"}Example 3 — A mix of all three
Input: ri!options
{
"Poor",
"Okay",
"Great"
}Input: ri!answers
{
3,
0,
4
}Output:
{
"Great",
"Skipped",
"(removed)"
}Example 4 — No answers
Input: ri!options
{
"Poor",
"Okay",
"Great"
}Input: ri!answers
{}Output:
{}Appian Expression Tips
- • Use
ri!variableNamefor rule inputs - • Use
a!localVariables(local!x: …, body)for locals - • Use
a!forEach(items: …, expression: fv!item)to iterate - • Use
where()/reject(fn!isnull, list)to filter