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 值
详情
填充数值型向量中的 NULL 值。
返回值
返回填充了指定个数 NULL 值的数值型向量。数据类型:数值型向量。
例子
a=[NULL,NULL,1,2,NULL,NULL,5,6,NULL,NULL];
interpolate(a);
// output
[,,1,2,3,4,5,6,6,6]
interpolate(X=a, method="pad");
// output
[,,1,2,2,2,5,6,6,6]
interpolate(X=a, limitDirection='both');
// output
[1,1,1,2,3,4,5,6,6,6]
interpolate(X=a, limit=1, limitDirection='both');
// output
[,1,1,2,3,4,5,6,6,]
interpolate(X=a, limitDirection='both', limitArea='outside');
// output
[1,1,1,2,,,5,6,6,6]
a;
// output
[,,1,2,,,5,6,,]
interpolate(X=a, limitDirection='backward', inplace=true);
// output
[1,1,1,2,3,4,5,6,,]
a;
// output
[1,1,1,2,3,4,5,6,,]