【问题标题】:Comparing multiple items比较多个项目
【发布时间】:2016-12-15 04:48:25
【问题描述】:

我正在尝试比较一个字段是否在整数列表中具有任何值。(例如:如果 MCC = 3001 || 3002 || 30004)在 SPSS 建模器中。但是可能值的列表很长。谁能告诉我如何在不使用“或”/“||”的情况下将列表传递给它以比较单个值。

【问题讨论】:

    标签: comparison spss spss-modeler


    【解决方案1】:

    问题是关于 Modeler,而不是 Statistics。

    【讨论】:

      【解决方案2】:

      这就是你要找的:

      If any(MCC, 3001, 3002, value3, value4, value5 ....) 
      

      如果 MCC 包含其后列出的任何值,则满足条件。

      【讨论】:

        【解决方案3】:

        如果值只是一个连续范围,那么您可以使用RANGE

        COMPUTE MCC_List=RANGE(MCC, 3001, 3004)=1.
        

        如果需要排除少量离散值,则可以使用RANGEANY 的组合,如下所示:

        COMPUTE MCC_List=RANGE(MCC, 3001, 3004)=1 and ANY(MCC,3003,3005)=0.
        

        如果您的值更加随机和离散,那么实现此目的的另一种方法是将值存储为查找表,然后匹配这些值。

        下面我在数据集中手动输入这些值,但通常您会将这些值保存在文本/csv 或 Excel 文件中,然后再读取该文件。

        这可能是一种很好的数据管理技术,尤其是当您有许多变量需要导出此类定义时。因为您可以存储一个包含所有这些值的单独文件,而无需将它们硬编码到语法中,并且这些文件可以简单地由程序读取并在需要时进行更新。

        (虽然这种技术确实需要SORT CASES,但如果处理大型数据集,这可能会减慢处理速度。因此,这种技术在 SQL 中更常用。您可以使用不需要 @ 的 SPSSsSTAR JOIN 987654328@ 但我自己不是该命令的忠实粉丝)。

        这是一个快速演示:

        DATA LIST LIST /ID MCC.
        BEGIN DATA
        1 4
        2 5
        3 1
        4 6
        5 7
        END DATA.
        DATASET NAME DS1.
        SORT CASES BY MCC.
        
        DATA LIST LIST /MCC_LIST MCC.
        BEGIN DATA
        1 1
        1 2
        1 3
        1 4
        1 5
        END DATA.
        DATASET NAME DS2.
        SORT CASES BY MCC.
        
        DATASET ACTIVATE DS1.
        MATCH FILES FILE=* /TABLE=DS2 /BY MCC.
        EXE.
        

        【讨论】:

          【解决方案4】:

          在 SPSS Modeler 中,您可以使用将所有值(例如:如果 MCC = 3001 || 3002 || 30004)放入 Excel 文件或文本文件中。

          然后,使用合并节点检查值是否在数据中(使用关键变量 MCC 比较两个数据集)。

          【讨论】:

            【解决方案5】:

            建模器 CLEM 表达式为: 成员(@FIELD,[int1 int2 int3])

            分别用字符串: 成员(@FIELD,['str1''str2''str3'])

            更多功能及相关知识,请看这里: https://www.ibm.com/support/knowledgecenter/en/SS3RA7_15.0.0/com.ibm.spss.modeler.help/clem_function_ref_comparison.htm

            【讨论】:

              猜你喜欢
              • 2011-12-09
              • 1970-01-01
              • 1970-01-01
              • 2016-10-17
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2023-04-01
              • 2023-03-29
              相关资源
              最近更新 更多