Macros 在SPSS宏中提取变量标签并将其用作字符串

Macros 在SPSS宏中提取变量标签并将其用作字符串,macros,spss,Macros,Spss,我正在开发一个SPSS宏,该宏旨在创建自定义表,每个表都有一个包含变量标签的标题(与当前使用的名称相反)。作为一个简化的例子: DEFINE !Ctables_loop (byvarlist = !CMDEND) !DO !byvar !IN (!byvarlist) CTABLES /titles Title= !QUOTE(!CONCAT('Table: ', !byvar)). !DOEND !ENDDEFINE. 理想情况下,此解决方案只涉及SPSS宏语言 谢谢大家! 可能这样做: *

我正在开发一个SPSS宏,该宏旨在创建自定义表,每个表都有一个包含变量标签的标题(与当前使用的名称相反)。作为一个简化的例子:

DEFINE !Ctables_loop (byvarlist = !CMDEND)
!DO !byvar !IN (!byvarlist)
CTABLES /titles Title= !QUOTE(!CONCAT('Table: ', !byvar)).
!DOEND
!ENDDEFINE.
理想情况下,此解决方案只涉及SPSS宏语言


谢谢大家!

可能这样做:

* run before running the macro.
SET  TVars=Labels OVars=Labels .
您也可以通过编辑=>OPTIONS=>OUTPUT来实现这一点。

作为部分解决方案: 通过在Ctables规范的标题部分使用“>TABLE”,您可以使用标签指定表中使用的变量。这有点不灵活,因为您需要处理的不仅仅是标签(例如“var1 by var2”,而不是直接访问var1 label和var2 label),但我在导出后使用了查找和替换函数来对整批表的格式进行取整

我希望这能帮助其他有类似问题的人


来源和更多信息:

感谢您的回复。不幸的是,TVAR和OVAR似乎不会影响宏为标题指定的变量。您需要构建
CTABLES
语法,以便在需要的地方使用标签,然后让宏对许多变量使用相同的语法。宏对命令的结果没有直接影响-它只是根据您的定义构造语法并运行它。对不起,我不确定您的意思。我自己解决了这个问题(见我发布的答案),但如果您的解决方案更有效,如果您能提供一个解决方案的示例,我将不胜感激。谢谢你的努力!我看到了您的解决方案-正如我所说的-首先,您需要获得正确的
CTABLES
语法(尝试通过菜单工作,直到获得所需的内容,然后粘贴到语法),然后您可以在宏中反映这一点,以便为许多变量重现表。