增加R中的矢量分辨率

时间:2012-04-10 11:55:42

标签: r vector plot

我试图找出一种方法来增加向量的元素数量,以便在绘制这些向量的值时去除可见的角度效果。例如,假设我有两个向量,每个向量包含10个元素:

a = c(4,2,10,5,3,4,8,9,6,2)
b = seq(0,4.5, by=0.5)

它们受到数据平滑的影响,但我想提高它们的“分辨率”以获得比10(其长度)更多的预测点。因此,换句话说,取向量 a 并加倍(例如)其元素数量,同时保持其一致性。生成的矢量应该类似于:

a = c(4,3,2,6,10,7,5,4,3,4,6,8,8.5,9,7.5,6,4,2,2)

当然,在这种特殊情况下,我可以轻松地成对计算元素的平均值。但我希望有一个任意长度的通用方法。我尝试过:

seq(a[1],a[10], length.out=20)

但当然这不起作用,因为只考虑了向量的第一个和最后一个元素。它适用于第二个矢量 b (包含横坐标值)。 任何帮助,将不胜感激。谢谢。 马吕斯。

1 个答案:

答案 0 :(得分:2)

您是否只想基于b序列进行线性插值?

 f <- approxfun(b, a)
 f(seq(b[1], b[length(b)], length = 20))
 [1] 4.000000 3.052632 2.105263 5.368421 9.157895 8.157895 5.789474 4.368421 3.421053 3.263158 3.736842 4.842105 6.736842 8.157895 8.631579 8.684211 7.263158 5.789474
 [19] 3.894737 2.000000

其他选项请参见?approx,其他形式的插值请See also?round以各种方式对值进行舍入。