Loops 多变量do-repeat命令SPSS
我试图将两个变量组合成一个char.index测试。下面的代码用于循环使用静态字符串查找变量。PR1到PR25是数据集中的变量。如果在至少一个搜索变量中找到“02703”,则此代码在新变量test中放入“1”Loops 多变量do-repeat命令SPSS,loops,repeat,spss,Loops,Repeat,Spss,我试图将两个变量组合成一个char.index测试。下面的代码用于循环使用静态字符串查找变量。PR1到PR25是数据集中的变量。如果在至少一个搜索变量中找到“02703”,则此代码在新变量test中放入“1” Compute test=0. DO REPEAT haystack = PR1 to PR25. IF CHAR.INDEX(haystack,"02703")>0 test=1. END REPEAT. EXECUTE. 代替“02703”,我想循
Compute test=0.
DO REPEAT haystack = PR1 to PR25.
IF CHAR.INDEX(haystack,"02703")>0 test=1.
END REPEAT.
EXECUTE.
代替“02703”,我想循环浏览字符串列表:“027034”“027035”“027036”“027037”“02703D”“02703E”“02703F”
尝试了以下代码(不工作)
也不起作用
Compute test=0.
Loop haystacks = PR1 to PR25.
DO REPEAT needles="027034" "027035" "027036" "027037" "02703D" "02703E" "02703F".
- IF CHAR.INDEX(haystacks,needles)>0 test=1.
END REPEAT.
END LOOP.
EXECUTE.
Compute test=0.
DO REPEAT haystacks = PR1 to PR25/ needles="027034" "027035" "027036" "027037" "02703D" "02703E" "02703F".
- IF CHAR.INDEX(haystacks,needles)>0 test=1.
END REPEAT.
EXECUTE.
我使用char.index,因为指针只是字符串的一部分。例如,027034应与0270346和027034Z匹配
是否可以将两个do repeat变量合并到一个计算中?提前感谢。
重复执行
在循环中不起作用
最简单的解决方法是在一个内使用几个IF
,每个针使用一个IF
:
Compute test=0.
DO REPEAT haystack = PR1 to PR25.
IF CHAR.INDEX(haystack,"02703")>0 test=1.
IF CHAR.INDEX(haystack,"02704")>0 test=1.
IF CHAR.INDEX(haystack,"02705")>0 test=1.
...
...
END REPEAT.
EXECUTE.
关于循环有一点值得注意:它们最适合使用VECTOR
命令,并允许嵌套结构(而确实重复了不允许嵌套结构)。如果您将针头存储为变量(SPSS变量,但其他变量为常量值),则可以尝试使用嵌套的循环方法。但在我看来,这有点违反直觉,我提到它只是为了指出DO REPEAT
和LOOP
之间的区别