我试图找出一种方法来增加向量的元素数量,以便在绘制这些向量的值时去除可见的角度效果。例如,假设我有两个向量,每个向量包含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 (包含横坐标值)。 任何帮助,将不胜感激。谢谢。 马吕斯。
答案 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
以各种方式对值进行舍入。