在 SPSS 宏中使用变量名称的子字符串

问题描述 投票:0回答:1

我想重命名具有数千个变量的数据集中的变量列表。重命名过程中有某些模式,我尝试为此编写一个宏。

我想删除变量名称的最后一个字符并将其与新字符连接起来(这部分工作正常)

这是宏。它不起作用,但这次输出文件没有用:

define !rename4 (vlist = !charend('/'))
!let !count = 1
!let !incr = 1
!do !vname !in (!vlist)  
!let !lastcharacter = !char.length(!vname)
!let !newname0 = !char.substr(!vname, 1, !lastcharacter) \*\*
!let !newname1 = !concat(!newname0,"\_")
!let !newname = !concat(!newname1, !count)
rename variables (!vname = !newname)
!let !count = !length(!concat(!blank(!count), !blank(!incr)))
!doend
!enddefine.
macros substring spss
1个回答
0
投票

我设法解决了这个问题,方法如下:

define !rename4 (vlist = !charend('/'))
!let !count = 1
!let !incr = 1
!let !incrtwo=2
!let !subtr=-1
!do !vname !in (!vlist)   
    !let !len=!length(!vname)
    !let !lastbutonecharacter = !length(!concat(!blank(!len), !blank(!subtr))) 
    !let !lastletter= !substr(!vname, !len, !incr)
    !if (!lastletter = A) !then 
    !let !count=1  
    !ifend
    !let !newname0 = !substr(!vname, 1, !lastbutonecharacter) 
    !let !newname1 = !concat(!newname0,"_")
    !let !newname = !concat(!newname1, !count)
    rename variables (!vname = !newname).
    !let !count = !length(!concat(!blank(!count), !blank(!incr)))
!doend
!enddefine.

主要问题是我不知道可以在 SPSS 宏中使用哪些命令。在 IBM 社区 Jon Oeck 帮助了我:可以在命令语法参考的 SPSS 帮助菜单中找到(在 Define-enddefine 下)。

© www.soinside.com 2019 - 2024. All rights reserved.