2012-08-16 100 views
0

我一直在試圖繪製兩組信息(殘差)之間的差異。兩組數據具有相似(但不同)的特徵,並且兩組數據都從0到相同的X值。唯一不一致的是它們的索引是不同的,因此當第一個圖形以A步驟到達X時,第二個圖形以B步驟達到X.因此,我不能簡單地從另一個數據幀中減去一個數據幀的因變量值。我的發言非常籠統,所以我提供了一個簡單的例子。我想繪製看起來像這樣的兩組數據之間的殘差:索引問題

data1 <- data.frame(x1=c(1,2,3,4,5,6), y1=c(10,5,7,3,2,4)) 
data2 <- data.frame(x2=c(1,3,6), y2=c(1,3,2)) 

plot(data1, y1 ~ x1, type = 'l', lty = 1, col = 'blue', xlim = c(1,6), ylim = c(0,10)) 
points(data2$y2 ~ data2$x2, type = 'l', lty = 1, col = 'red') 

所以我想我的問題是:

  1. 我怎樣才能畫出兩個函數的殘差(如上述),其被索引不同。是否有一個函數可以解決兩個數據集之間的殘差?

EDIT1:這個例子有問題,Spacedman幫我糾正了這個問題。

+1

點不使用公式表示法,所以它試圖在x軸上繪製data2並在y軸上繪製公式'zzzz〜zz'並且變得非常困惑。嘗試行(data2 $ zz,data2 $ zzzz,col =「red」) – Spacedman 2012-08-16 13:52:36

+0

感謝您的輸入,Spacedman,幫助我弄清楚如何解決這個例子。 – MikeZ 2012-08-16 14:02:13

回答

1

如果線性插值足夠好,您可以使用approx插入一堆X座標。 EG:

> xout = sort(unique(c(seq(1,6,len=100),data1$x1,data2$x2))) # include data coords (untested) 
> d1 = approx(data1$x1,data1$y1,xout) 
> d2 = approx(data2$x2,data2$y2,xout) 
> plot(xout,d1$y-d2$y,type="l") 
+0

我寧願不使用'ggplot',因爲我在我編寫的程序中根本沒有使用它。如果不是這樣,我肯定會使用這種方法。但是你知道有什麼方法來繪製兩者之間的殘差嗎? – MikeZ 2012-08-16 14:09:07

+0

這是正確的。我會編輯我的帖子來闡明我在找什麼。 – MikeZ 2012-08-16 14:12:14

+0

我會給大約一個去,我還沒有嘗試過。 – MikeZ 2012-08-16 17:03:18