为什么我的条件过滤器每次都会返回阳性?

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

我在SPSS中有一个语法,在以前(对于其他数据集)中工作正常,但现在正在行动。这是一个过滤器,使我可以选择某些其他字符串的一部分字符串。例如,我可能正在寻找带有字符串“面包”的单元格,但是在它是字符串的一部分“ breadbin”的情况下,我对它不感兴趣。 我一直这样做的方式是: 首先,有一个“简单”的字符串搜索,对于我不感兴趣的字符串的字符串,这些字符串通常不感兴趣:

COMPUTE keyword = 0. IF (CHAR.INDEX (column1,'bread')=1) keyword = 1. EXECUTE.

这效果很好。什么不是更复杂的过滤器:

COMPUTE keyword = 0.
IF ((CHAR.INDEX (column1,'bread')=1 | (CHAR.INDEX (column1,'breadbin')=0)) keyword = 1.
EXECUTE.

这不会遇到任何错误,但是它返回每行的值1,甚至是空白!我不知道为什么。有线索吗?

	
首先,当第一个(数字1)Charachter的位置存在字符串“面包”时。如果您想检查文本中的任何地方是否存在“面包” - 这样做:

(CHAR.INDEX (column1,'bread')=1)

.
filter spss
1个回答
0
投票
现在,如果您纠正了这样的更复杂的代码:

(CHAR.INDEX (column1,'bread')>0)

您将捕获所有“面包”出现的情况而不会成为“面包鸟”的一部分。
但是,当您使用它时,为什么不搜索所有未与其他字母相关的“面包”的外观呢?这样,您就不必单独照顾每个组合。因此,您会寻找“面包”。现在,如果“面包”出现为第一个或最后一个单词,则搜索将失败,因为单词之前或之后会缺少一个空间。为了解决文本开始和文本结束的空间,以确保以下内容,然后搜索:
((CHAR.INDEX (column1,'bread')>0 & (CHAR.INDEX (column1,'breadbin')=0))

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.