Чтобы выполнить 1-мерное сглаживание по вертикальной или горизонтальной оси, используйте apply:
apply(myarray,1,smooth.spline)
или
apply(myarray,2,smooth.spline)
Я не знаком с 2-D сглаживанием,но быстрый эксперимент с пакетом полей, похоже, сработал.Вам нужно будет установить пакет fields
и его зависимости.Где myMatrix
- это матрица, которую вы имели выше ... (я воссоздаю ее):
# transform data into x,y and z
m = c(1,1,2,1,1,5,6,3,2,3,2,1,1,1,1,1)
myMatrix = matrix(m,4,4,T)
myMatrix
[,1] [,2] [,3] [,4]
[1,] 1 1 2 1
[2,] 1 5 6 3
[3,] 2 3 2 1
[4,] 1 1 1 1
Z = as.vector(myMatrix)
XY=data.frame(x=as.numeric(gl(4,1,16),Y=as.numeric(gl(4,4,16))
t=Tps(XY,Z)
surface(t)
Получил симпатичный сюжет.