使用SPSS Modeler替换值

时间:2018-08-22 07:38:48

标签: spss-modeler

我目前正在尝试对包含来自在线超市的在线交易的2K记录的数据集执行数据清理。

在我的数据集中,有一些数据质量问题-

1)“?”在我的“收入”列中,如图所示

Income with "?" in my dataset

我可以知道如何在IBM SPSS Modeler中清除此数据吗?我尝试使用“填充程序”节点替换“?”但是我不太确定在表达式生成器中写什么。如您所见,由于记录中带有“?”,因此收入以字符串形式存储在Filler节点中。

IBM Spss Modeler Filler node

有没有人知道如何替换/清除收入数据,因为我想使用数据审计准备节点用收入列的平均值替换缺失的值。但是,对于我来说,我需要删除“?”以便在“类型”节点中将“收入”类型更改为连续数据。

Type node

2)我的Cigg列(T / F)缺少值

enter image description here

我不太确定如何替换Cigg列的缺失值作为布尔值。我可以知道该如何替换数据吗?

谢谢。

3 个答案:

答案 0 :(得分:0)

图片被我屏蔽了,但是您可以尝试:

1)“?”在“收入”列中,如下所示: 使用派生节点,其语法类似于:

replace('?','',收入)

语法将替换所有符号'?' ”。

2)我的Cigg列(T / F)缺少值

您要如何处理缺少的值?您可以删除缺少值的行或使用某种技术替换它们,但是如果您有2k条记录,也许最好删除那些缺少的行。

A)为了删除它们,请使用具有以下语法的过滤器节点:

'variable'='$ null $',然后在对话框中选择丢弃选项。

B)要替换缺少的值:使用派生节点并编写类似于以下内容的语法:

如果变量='$ null $',则表示(变量)else变量endif (我在这里用的是平均数,但请尝试找到为您替换缺失的最佳选择)。

以上这些节点将创建新变量,您必须为它们选择一个新名称并在对话框中选择变量的类型。

Ref from IBM for Derive Node

希望对您有所帮助!

答案 1 :(得分:0)

1。)您可以在填充节点的情况下尝试使用@FIELD = "?"

2。)这取决于您要对数据执行的操作,具体取决于用法,最好是忽略该列,将其替换为默认值或忽略数据行。

答案 2 :(得分:0)

对于问号,您可以尝试Variable =“?”,或在文本编辑器中读取该符号,然后将其放在公式中。解决方法是逻辑排除,例如:条件替换 ->不(变量> = 0)-> 0

对于空值,可以使用“替换”部分上的“空白和空值”按钮,也可以使用Variable = undef(undef是Modeler中的Null值)

这是Filler节点中的所有逻辑。