use*_*894 5 label r outliers boxplot
我想将矩阵的每一列绘制成一个箱线图,然后将每个箱图中的异常值标记为它们在矩阵中所属的行名称.举个例子:
vv=matrix(c(1,2,3,4,8,15,30),nrow=7,ncol=4,byrow=F)
rownames(vv)=c("one","two","three","four","five","six","seven")
boxplot(vv)
Run Code Online (Sandbox Code Playgroud)
我想将每个图中的异常值(在本例中为30)标记为它所属的行名,因此在这种情况下30属于第7行.有一种简单的方法可以做到这一点吗?我已经看到类似的问题,但似乎没有一个像我想要的那样工作.
小智 8
有一个简单的方法.请注意,以下行中的Boxplot中的b是大写字母.
library(car)
Boxplot(y ~ x, id.method="y")
Run Code Online (Sandbox Code Playgroud)
在给出的示例中,它有点无聊,因为它们都在同一行。但这里是代码:
bxpdat <- boxplot(vv)
text(bxpdat$group, # the x locations
bxpdat$out, # the y values
rownames(vv)[which(vv == bxpdat$out, arr.ind=TRUE)[, 1]], # the labels
pos = 4)
Run Code Online (Sandbox Code Playgroud)
这会选择结果中具有等于“out”列表(即离群值)值的行名boxplot。Boxplot 调用并返回 中的值boxplot.stats。看一眼:
str(bxpdat)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27634 次 |
| 最近记录: |