我在R中有一个二维数组,它代表行和列的网格的值数据。看起来像这样:
[,1] [,2] [,3] [,4]
[1,] 1 1 2 1
[2,] 1 5 6 3
[3,] 2 3 2 1
[4,] 1 1 1 1
我想“平滑”这些值。在这一概念验证点,我可以使用任何流行的平滑功能。我目前正在尝试使用smooth.spline
函数:
smooth.spline(x, y = NULL, w = NULL, df, spar = NULL,
cv = FALSE, all.knots = FALSE, nknots = NULL,
keep.data = TRUE, df.offset = 0, penalty = 1,
control.spar = list())
(通过(天真的)打电话)>
smoothed <- smooth.spline(myarray)
运行此文件时,出现此错误:
smooth.spline(a)中的错误:至少需要四个唯一的'x'值
我的数组在每个维度上都有四个或更多的唯一值,因此我认为我不知道如何正确格式化输入数据。有人可以给我一些有关这种事情的指示吗?类似
smooth
的函数的示例似乎可用于一维矢量,而我似乎无法推断到二维世界。我是R新手,所以请随时在这里纠正我对术语的误用!
我在R中有一个二维数组,它代表行和列的网格的值数据。看起来像这样:[,1] [,2] [,3] [,4] [1,] 1 1 2 1 [2,] 1 5 6 3 [3,] 2 3 2 ...
要在垂直轴或水平轴上进行一维平滑,请使用应用:
apply(myarray,1,smooth.spline)
Smoothing
检查fields
程序包(https://github.com/NCAR/fields),尤其是非常有用的小插图:https://github.com/NCAR/fields/blob/master/fieldsVignette.pdf