interpolate

语法

interpolate(X, [method=’linear’], [limit], [inplace=false], [limitDirection=’forward’], [limitArea])

参数

必填参数: X 是一个数值型向量。

可选参数:

method 是一个字符串,表示插值的方式。它的可取值为:

  • linear: 线性插值

  • pad: 使用已有的值填充

  • nearest: 使用最接近 NULL 值的有效值填充

  • krogh: 使用 krogh 多项式插值

如果没有指定,默认值为 linear。

limit 是一个正整数,表示最多要填充的连续 NULL 值的个数。

inplace 是一个布尔值,表示是否使用结果覆盖输入的 X。默认值为 false,会返回一个新的向量。

limitDirection 是一个字符串,表示填充 NULL 的方向。它的可取值为:forward, backward 和 both。默认值为 forward。

limitArea 是一个字符串,表示填充的区域。它的可取值为:

  • 空字符串: 填充的区域没有限制

  • inside: 只填充有效值包围的NULL值

  • outside: 只填充有效值之外的NULL值

注意:指定 method, limitDirectionlimitArea 的参数值时,应用 “” 或 ‘’包夹。

详情

填充数值型向量中的 NULL 值。

返回值

返回填充了指定个数 NULL 值的数值型向量。数据类型:数值型向量。

例子

$ a=[NULL,NULL,1,2,NULL,NULL,5,6,NULL,NULL];

$ interpolate(a);
[,,1,2,3,4,5,6,6,6]

$ interpolate(X=a, method="pad");
[,,1,2,2,2,5,6,6,6]

$ interpolate(X=a, limitDirection='both');
[1,1,1,2,3,4,5,6,6,6]

$ interpolate(X=a, limit=1, limitDirection='both');
[,1,1,2,3,4,5,6,6,]

$ interpolate(X=a, limitDirection='both', limitArea='outside');
[1,1,1,2,,,5,6,6,6]

$ a;
[,,1,2,,,5,6,,]

$ interpolate(X=a, limitDirection='backward', inplace=true);
[1,1,1,2,3,4,5,6,,]

$ a;
[1,1,1,2,3,4,5,6,,]