簡體   English   中英

在R中按分位數繪制

[英]Plotting by quantile in R

我想繪制foo ~ bar 但是,我不想查看確切的數據,我寧願將分bar分成多個分位數,並為每個分位數繪制mean(foo) (這樣我的最終圖將有5個數據點)。 這可能嗎?

 foo <- rnorm(100)
 bar <- rnorm(100)

  mn.foo.byQ10bar <- tapply(foo, cut(bar, quantile(bar, (0:5)/5, na.rm=TRUE)), mean)

> mn.foo.byQ5bar
 (-3.31,-0.972] (-0.972,-0.343]  (-0.343,0.317]   (0.317,0.792]    (0.792,2.71] 
     0.13977839      0.03281258     -0.18243804     -0.14242885     -0.01696712 

 plot(mn.foo.byQ5bar)

這是一個相當標准的任務,Harrell的Hmisc程序包的cut2函數具有一個不錯的gr =參數,您可以通過僅為組數指定一個整數來執行此操作。 我也喜歡它,因為剪切操作的間隔是左關閉的,而不是右關閉的R default。

您可以將許多這些行組合成更簡潔的代碼,但此處已將其細分

# Sample Data: 
x <- 1:100;   y <- rnorm(x)

# Number Of Groups
N <- 5

# quantiles
Q.y <- quantile(y, probs=seq(0, 1, length=(N+1)))
Q.x <- quantile(x, probs=seq(0, 1, length=N))

# means of y by quantile
means.y <- c(by(y, cut(y, Q.y), mean))

# plot them 
qplot(Q.x, means.y)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM