2014-09-29 115 views
0

我有兩組來自模擬的100.000個觀察值。 由於兩種情況之一是「基線」病例,​​另一種是「治療」病例,因此我想創建一個突出顯示兩種模擬分佈差異的圖。繪製兩個ecdf之間的差異()

我從兩個種羣的ecdf()開始。結果在圖片中。 the two ecdf()s I wish to combine into ONE 'difference' plot

我想這樣做是有兩個ECDF曲線之間的差異的陰謀。

一個簡單的ecdf(baseline) - ecdf(處理)不起作用,因爲ecdf返回一個函數;即使使用Hmisc包中的Ecdf也不行,因爲Ecdf返回一個列表,並且在這種情況下,差異' - '運算符再次被定義爲不明確。

通過運行此代碼,你可以通過圖片描述的場景以上

a <- runif(10000) 
b <- rnorm(10000,0.5,0.5) 
plot(ecdf(a)) 
lines(ecdf(b), col='red') 

任何提示會更受歡迎。

+0

如果你確實包括[重複的例子(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example),它會更容易提供特定的編碼建議。 – MrFlick 2014-09-29 16:56:30

+0

@MrFlick謝謝,我沒有爲起點添加可重複的示例。我不能再多說,因爲剩下的就是我所要求的...... – PaoloCrosetto 2014-09-29 17:03:49

+0

這就是所有必要的。如果是這種情況,那麼尼爾的答案應該可以工作。我在他的回答中添加了一條評論,以顯示它如何與變量名一起工作(最初包含該示例時他可以完成的工作)。 – MrFlick 2014-09-29 17:09:52

回答

2

那麼評估功能?

decdf <- function(x, baseline, treatment) ecdf(baseline)(x) - ecdf(treatment)(x) 
+0

我treid,但它返回一個錯誤 - >它似乎不能使用運算符' - '與兩個ecdf()s。 – PaoloCrosetto 2014-09-29 17:05:19

+1

@PaoloCrosetto對於您的樣本數據,您是否嘗試過'曲線(decdf(x,a,b),從= min(a,b)到= max(a,b))?這似乎爲我工作 – MrFlick 2014-09-29 17:07:49

+0

謝謝,它的作品。我對R中的函數聲明不是很熟悉,我不知道函數中的'x'代表什麼。我仍然不知道,但我應該RTFM。 謝謝! – PaoloCrosetto 2014-09-29 17:15:06