【发布时间】:2021-03-02 14:12:31
【问题描述】:
我想使用针列表遍历多个变量(即多个干草堆)。
数据:
| PICK1 | PICK2 | PICK3 | PICK4 |
|---|---|---|---|
| Grape | Raspberry | Clementime | Strawberry |
| Strawberry | Lemon | Blueberry | Apple |
| Cantelope | Mango | Grape | Pear |
| Apple | Orange | Kiwi | Raspberry |
有效的手动代码
Compute citrus=0
if char.index(PICK1,"orange")>0 citrus=1.
if char.index(PICK2,"orange")>0 citrus=1.
if char.index(PICK3,"orange")>0 citrus=1.
if char.index(PICK4,"orange")>0 citrus=1.
if char.index(PICK1,"lemon")>0 citrus=1.
if char.index(PICK2,"lemon")>0 citrus=1.
if char.index(PICK3,"lemon")>0 citrus=1.
if char.index(PICK4,"lemon")>0 citrus=1.
if char.index(PICK4,"clementine")>0 citrus=1.
if char.index(PICK4,"clementine")>0 citrus=1.
if char.index(PICK4,"clementine")>0 citrus=1.
if char.index(PICK4,"clementine")>0 citrus=1.
期望结果:如果在变量中找到值,则记录 1
| Citrus |
|---|
| 1 |
| 1 |
| 0 |
| 1 |
尝试的代码(不工作)
do repeat L = [orange, lemon, clementine]
/PICK = PICK1 to PICK7000.
compute L = if char.index(PICK,L)>0 citrus=1.
end repeat.
我最初将 char.index 用于搜索具有相似基名的多个值。例如,搜索“berry”会希望找到“strawberry”、“blueberry”等。有没有办法将其合并到COMPUTE 函数中?
NUMERIC berry (f1.0).
DO REPEAT PICK = PICK1 to PICK7000.
COMPUTE berry=any(PICK, char.index(PICK, "berry").
END REPEAT.
EXECUTE.
【问题讨论】: