首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较多个项目

比较多个项目
EN

Stack Overflow用户
提问于 2016-12-15 12:48:25
回答 5查看 103关注 0票数 1

我正在尝试比较一个字段在SPSS modeller中是否有整数列表中的任何值(例如: if MCC = 3001 || 3002 || 30004)。但是,可能的值列表非常长。谁能告诉我如何不使用‘或’/ '||‘传递一个列表给它来比较单个值。

EN

Stack Overflow用户

发布于 2016-12-15 22:56:40

如果这些值仅仅是一个连续的范围,那么您可以使用RANGE

代码语言:javascript
运行
复制
COMPUTE MCC_List=RANGE(MCC, 3001, 3004)=1.

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

代码语言:javascript
运行
复制
COMPUTE MCC_List=RANGE(MCC, 3001, 3004)=1 and ANY(MCC,3003,3005)=0.

如果您的值更具随机性和离散性,那么实现这一点的另一种方法是将这些值存储为查找表,然后根据这些值进行匹配。

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

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

(尽管该技术确实需要SORT CASES,这在处理大型数据集时可能会减慢过程。因此,这种类型的技术在SQL中更常用。你可以使用不需要SORT的SPSS STAR JOIN,但我自己并不是一个很喜欢这个命令的人)。

下面是一个快速演示:

代码语言:javascript
运行
复制
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.
票数 1
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41156619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档