Python/SPSS:名称中的模式不连续

Python/SPSS:名称中的模式不连续,python,spss,Python,Spss,开始使用SPSS/Python时,我需要对名称包含两个不同字符串的变量求平均值。我发现了许多单个字符串(或数字等)的示例,但我的字符串不是相邻的 var1_blabla_def_blabla_jkl var2_blabla_blabla_def_jkl var3_blabla_jkl_bla_bla 我如何得到var1和var2的平均值,包含“def”和“jkl”,而不是只包含jkl的var3?我不确定此模式的正则表达式是什么,以及如何将其输入到类似spss.Submit的东西中('comput

开始使用SPSS/Python时,我需要对名称包含两个不同字符串的变量求平均值。我发现了许多单个字符串(或数字等)的示例,但我的字符串不是相邻的

var1_blabla_def_blabla_jkl

var2_blabla_blabla_def_jkl

var3_blabla_jkl_bla_bla

我如何得到var1和var2的平均值,包含“def”和“jkl”,而不是只包含jkl的var3?我不确定此模式的正则表达式是什么,以及如何将其输入到类似spss.Submit的东西中('compute%s=mean(%s))


非常感谢您的帮助和提示,我非常感谢。

创建一些虚假数据:

data list list/rowID var1_blabla_def_blabla_jkl var2_blabla_blabla_def_jkl  var3_blabla_jkl_blabla var4_jkl_blabla_def var5_blabla_def_blabla.
begin data
1 20 30 40 50 60
2 21 31 41 51 61
3 22 32 42 52 62
4 23 33 43 53 63
end data.
现在,下面将计算一个新变量,它是所有其他变量的平均值,这些变量的名称同时包含“jkl”和“def”:


创建一些虚假数据:

data list list/rowID var1_blabla_def_blabla_jkl var2_blabla_blabla_def_jkl  var3_blabla_jkl_blabla var4_jkl_blabla_def var5_blabla_def_blabla.
begin data
1 20 30 40 50 60
2 21 31 41 51 61
3 22 32 42 52 62
4 23 33 43 53 63
end data.
现在,下面将计算一个新变量,它是所有其他变量的平均值,这些变量的名称同时包含“jkl”和“def”:


您可以通过两种方式进一步简化。首先,spssaux.VariableDict对象具有使用正则表达式的内置过滤机制。所以你可以写
vars=spssaux.VariableDict(pattern=“(*jkl)|(*def)).variables
去拿名单


第二种方法是使用SPSSINC SELECT VARIABLES扩展命令,该命令包含在Python Essentials中,用于根据包括名称模式、变量类型和其他属性的选择条件生成宏。然后可以在常规语法中使用该命令。该命令作为定义变量出现在实用程序菜单上宏。

您可以通过两种方式进一步简化此操作。首先,spssaux.VariableDict对象具有使用正则表达式的内置筛选机制。因此,您可以编写
vars=spssaux.VariableDict(pattern=“(*jkl)|(*def)).variables
去拿名单


第二种方法是使用SPSSINC SELECT VARIABLES扩展命令,该命令包含在Python Essentials中,用于根据包括名称模式、变量类型和其他属性的选择条件生成宏。然后可以在常规语法中使用。该命令以定义变量宏的形式出现在“实用程序”菜单上。

太好了,运行起来非常漂亮。非常感谢,这是一个很大的帮助!太好了,很漂亮。非常感谢,这是一个很大的帮助!很好,谢谢,(pattern=“(.*jkl)|(.*def))也可以。我不知道这个表达式的结构。非常感谢!vars=spssaux.VariableDict(pattern=“(.*correct)”)。variableshorry:vars=spssaux.VariableDict(pattern=“(.*jkl)|(.*def))。variablesGreat,谢谢,(pattern=“(.*jkl)|(.*def))也可以。我不知道这个表达式的结构。谢谢!vars=spssaux.VariableDict(pattern=“(.*correct)”)。variablesorry:vars=spssaux.VariableDict(pattern=“(.*jkl)|(.*def))”。变量