2012-11-07 40 views
2

我有兩個不同的數據集(c1c2),它們被繪製在一張圖中。兩條曲線有不同的x和y的值:計算R中具有不同數據點的兩條曲線的殘差

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值(unique(c(c1$x, c2$x)))。如果我擁有相同的x值,這很容易。但似乎我必須插入所有缺失的x值並將它們添加到測量的數據集中。

在R中有這樣一個簡單的方法嗎?

+0

當ÿ ou說「殘差」是指圖表上的線段之間的差異嗎?如果是這樣,你需要什麼樣的x值? – seancarmody

+0

對於兩條曲線中的所有現有x值('唯一(c1 $ x,c2 $ x)') –

回答

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 
相關問題