2015-12-08 37 views
0

Age vs. Medal Plot碼5號彙總

我做了一個箱形圖比較男性游泳奧運選手的年齡,然後他們是否獲得獎牌。我想知道如何做代碼來得到一個沒有獎牌的盒子情節的五位數摘要以及帶有獎牌的盒子情節(我將獎章更改爲一個因子)。我試過summary(age,medal.f)summary(age~medal.f),似乎沒有任何工作/我不知道如何分開箱子的情節。有關如何做到這一點的任何想法?

回答

6

獲取此信息的最簡單方法是保存您的boxplot()調用的結果並提取$stats組件。使用內置ToothGrowth數據集,

b <- boxplot(len~supp,data=ToothGrowth) 
b$stats 
##  [,1] [,2] 
## [1,] 8.2 4.2 
## [2,] 15.2 11.2 
## [3,] 22.7 16.5 
## [4,] 25.8 23.3 
## [5,] 30.9 33.9 

更一般地,你可以手工的東西,如做

with(data,lapply(split(age,medal),boxplot.stats)) 

有許多涉及by()plyrdplyrdata.table包的其他解決方案...

再次使用ToothGrowth

(bps <- with(ToothGrowth,lapply(split(len,supp),boxplot.stats))) 
$OJ 
$OJ$stats 
[1] 8.2 15.2 22.7 25.8 30.9 

$OJ$n 
[1] 30 

$OJ$conf 
[1] 19.64225 25.75775 

$OJ$out 
numeric(0) 


$VC 
$VC$stats 
[1] 4.2 11.2 16.5 23.3 33.9 

$VC$n 
[1] 30 

$VC$conf 
[1] 13.00955 19.99045 

$VC$out 
numeric(0) 

如果你只是想在5號彙總,則可以按如下提取它們:

sapply(bps,"[[","stats") 
     OJ VC 
[1,] 8.2 4.2 
[2,] 15.2 11.2 
[3,] 22.7 16.5 
[4,] 25.8 23.3 
[5,] 30.9 33.9 
+0

感謝您的答覆! split(age,medal.f)列出了兩組中的所有內容,並且像我需要的那樣將它們分開,但現在我仍然對如何對這些分組進行5位數摘要感到困惑。我嘗試使用像你所建議的,但沒有得到我需要的結果。 – user2821333

+0

如果這不起作用,你肯定需要提供一個[可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)... –

+0

圖書館(硬幣)年齡< - c(15,15,16,17,20,21,21,21,25)獎章< - c(0,0,1,0,0,1,1,0,0)獎牌.f < - 因子(獎牌,標籤= c(「沒有獎牌」,「獎章」))wilcox_test(年齡〜獎牌.f)boxplot(年齡〜獎牌.f,main =「年齡與獎牌」,ylab = 「Age」,col =(c(「darkolivegreen1」,「lavender」)))split(age,medal.f) – user2821333