当前位置:  开发笔记 > 编程语言 > 正文

代码为5号码摘要

如何解决《代码为5号码摘要》经验,为你挑选了1个好方法。

年龄与奖牌情节

我做了一个箱形图,比较了男子游泳奥运会运动员的年龄,然后他们是否获得了奖牌.我想知道如何编写代码来获得没有奖牌的盒子图的五个数字摘要和带奖牌的盒子图(我将奖章改为一个因子).我试过了summary(age,medal.f),summary(age~medal.f)似乎没有任何工作/我不知道如何分离箱形图.有关如何做到这一点的任何想法?



1> Ben Bolker..:

获取此信息的最简单方法是保存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()plyr,dplyr,data.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

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有