2

2 つの異なるデータセット (c1c2) があり、1 つのグラフにまとめてプロットされています。両方の曲線の x 値と y 値は異なります。

c1 = data.frame(
  x=c(0,1.1,2,  3,  4,  5),
  y=c(0,1.1,1.9,3.2,4.3,5.2)
)
c2 = data.frame(
  x=c(0,0.3,0.9,2.1,3.2,4.2,5),
  y=c(0,0.4,1.5,2.3,3.2,4.1,5.1)
)
plot(c1, type="o", col=2)
lines(c2, type="o", col=3)

res=c1-c2ここで、すべての一意の x 値 ( ) に対する2 つの曲線 ( ) の残差をプロットしたいと思いますunique(c(c1$x, c2$x))。同じ x 値があれば、これは簡単です。しかし、欠落しているすべての x 値を補間して、測定されたデータセットに追加する必要があるようです。

Rでこれを行う簡単な方法はありますか?

4

1 に答える 1

3

これはどう:

値についてc1$x

c1$y - approx(c2$x, c2$y, c1$x)$y
# [1]  0.0000000 -0.5333333 -0.3333333  0.1636364  0.3800000  0.1000000

値についてc2$x

approx(c1$x, c1$y, c2$x)$y - c2$y
# [1]  0.00 -0.10 -0.60 -0.27  0.22  0.38  0.10

または、すべてをまとめると、

x <- sort(unique(c(c1$x, c2$x)))
approx(c1$x, c1$y, x)$y - approx(c2$x, c2$y, x)$y
# [1] 0.0000000 -0.1000000 -0.6000000 -0.5333333 -0.3333333 -0.2700000  0.1636364  0.2200000
# [9] 0.3800000  0.3800000  0.1000000
于 2012-11-07T11:47:59.617 に答える