简单统计量填补

 

均值填补


A

1

=file("D://titanic.csv").import@qtc()

2

=A1.avg(Age)

3

=A1.run(Age=if(!Age,A2,Age))

titanic.csv的数据中,使用均值对变量Age进行填充

填补前 填补后

....

根据变量类型自动填补

使用均值填补要求变量的数据类型必须是定量的,如果不是定量型数据则需要使用其他统计量进行填补。例如,对于整数型变量,使用均值或中位数填充都可;对于浮点型变量仅能使用均值填充;对于字符型变量则一般使用众数进行填补。方便的是,在SPL中提供了A.impute()P.impute()函数,可以根据变量类型自动选择不同的统计量来填补缺失值。


A

1

=file("D://titanic.csv").import@qtc()

2

=A1.impute@N("Age")

3

=A1.fname()

4

=A3.(A1.impute@c(~))

A2 对变量Age进行填充,返回填充结果和填充记录Rec@N表示指明变量类型为数值。

..

impute()函数会根据指明的变量类型,执行众数填补或均值填补或是将缺失值填补成一个新的类别。当变量类型未被指明,impute()会自动判断变量类型进行填补。

A3 获取表A1的字段名

A4 impute()函数自动判断字段的数据类型,自动填补所有字段。@c表示修改原数据为填补后结果,执行后A1表中无缺失值。

需要注意的是当函数自动判断数据类型时会有一个优先级,可能会存在类型判断不准确影响填充效果。更详细函数的用法请参考函数说明文档http://doc.raqsoft.com.cn/esproc/func/