SPSS 宏 - DEFINE 中的字符串操作 - !ENDDEFINE
SPSS Macro - String Manipulation in DEFINE - !ENDDEFINE
根据下面的 SPSS 文档-link,我了解到 !REPLACE 不是带有 DEFINE - !ENDDEFINE 的有效字符串操作函数。当然必须有解决这个问题的方法......或者使用其他字符串操作函数,或者我认为更有可能是另一种方法。对于这种问题,你们过去见过什么?谢谢!
具体问题:
用户输入
的宏变量名称 (vars)
1)需要按指定组(groupVars)取平均值,
2) 然后 Zscored
3) 和他们的 Zscores 由同一组平均。
Zscored时,新的变量名是"Z"+原变量名。所以我想在我的 vars 列表中将“”替换为“z”,并将 z 放在最开始的地方!CONC。问题是这里的字符串操作函数似乎不允许 !REPLACE.
示例代码:
DEFINE !RunProfiles (vars=!CHAREND ('/') /groupVars =!CMDEND)
*GET MEANS FOR EACH GROUPVAR FOR SPECIFIED VARIABLES.
!DO !I !IN (!groupVars)
means tables=!vars by !I / cells mean.
!DOEND
*GET ZSCORES FOR SPECIFIED VARS.
DESCRIPTIVES VARIABLES=!profvars
/SAVE
/STATISTICS=MEAN.
*GET Z MEANS FOR EACH SEGMENT FOR SPECIFIED VARIABLES.
!DO !I !IN (!groupVars)
!LET Zvars = !CONC("z", !REPLACE(!vars, " ", " z"))
means tables=!Zvars by !I / cells mean.
!DOEND
!ENDDEFINE.
这是有问题的行:!LET Zvars = !CONC("z", !REPLACE(!vars, " ", " z"))
我认为你需要的是这个有问题的行:
*GET Z MEANS FOR EACH SEGMENT FOR SPECIFIED VARIABLES.
!DO !I !IN (!groupVars)
means tables=!do !k !in(!vars) !concat("Z",!k) !doend by !I / cells mean.
!DOEND
根据下面的 SPSS 文档-link,我了解到 !REPLACE 不是带有 DEFINE - !ENDDEFINE 的有效字符串操作函数。当然必须有解决这个问题的方法......或者使用其他字符串操作函数,或者我认为更有可能是另一种方法。对于这种问题,你们过去见过什么?谢谢!
具体问题:
用户输入
的宏变量名称 (vars)
1)需要按指定组(groupVars)取平均值,
2) 然后 Zscored
3) 和他们的 Zscores 由同一组平均。
Zscored时,新的变量名是"Z"+原变量名。所以我想在我的 vars 列表中将“”替换为“z”,并将 z 放在最开始的地方!CONC。问题是这里的字符串操作函数似乎不允许 !REPLACE.
示例代码:
DEFINE !RunProfiles (vars=!CHAREND ('/') /groupVars =!CMDEND)
*GET MEANS FOR EACH GROUPVAR FOR SPECIFIED VARIABLES.
!DO !I !IN (!groupVars)
means tables=!vars by !I / cells mean.
!DOEND
*GET ZSCORES FOR SPECIFIED VARS.
DESCRIPTIVES VARIABLES=!profvars
/SAVE
/STATISTICS=MEAN.
*GET Z MEANS FOR EACH SEGMENT FOR SPECIFIED VARIABLES.
!DO !I !IN (!groupVars)
!LET Zvars = !CONC("z", !REPLACE(!vars, " ", " z"))
means tables=!Zvars by !I / cells mean.
!DOEND
!ENDDEFINE.
这是有问题的行:!LET Zvars = !CONC("z", !REPLACE(!vars, " ", " z"))
我认为你需要的是这个有问题的行:
*GET Z MEANS FOR EACH SEGMENT FOR SPECIFIED VARIABLES.
!DO !I !IN (!groupVars)
means tables=!do !k !in(!vars) !concat("Z",!k) !doend by !I / cells mean.
!DOEND