0

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

4

1 回答 1

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以及以各种方式四舍五入的值。

于 2012-04-10T12:29:25.447 回答