[英]R: use “identify” to find the column names in a boxplot
在R中,我从大约150列的data.frame中绘制了一个很大的箱线图。 我知道有些“异常”列的分布与其余数据集相差太大,因此我想精确地确定哪些列。
毫不奇怪,标签没有足够的空间,即使有,也可能不方便手工检查。 所以我认为我可以使用R的identify
函数来定位有问题的列。 但是,这样的函数需要x和y坐标,到目前为止,我无法使其正常工作。
我试过了
boxplot(dd.noctr$TGS, outline=F)
identify(xy.coords(dd.noctr$TGS)$x, y=xy.coords(dd.noctr$TGS)$y)
其中dd.noctr$TGS
是我的数据(矩阵或data.frame),仅用于获取错误
warning: no point within 0.25 inches
这意味着没有发现任何要点。
是否存在识别列名 (不是单点)的替代解决方案?
该解决方案似乎有些笨拙,因此可能有更好的解决方案。
用三列设置一些示例数据:
TGS = data.frame(A = rnorm(100), B = rnorm(100), C=rnorm(100))
接下来绘制箱线图
boxplot(TGS, outline=F)
现在我们构造identity
函数。
identify(x=rep(1:ncol(TGS), each=nrow(TGS)), y=as.vector(unlist(TGS)), label=rep(colnames(TGS), each=nrow(TGS)))
标签是列名。 仅在单击箱线图中心附近时,此功能才起作用。
如果要获取异常值列表,可以使用boxplot的“ out”组件。
示例:创建一个数据框:包含一些随机值,平均值为20,并添加一些离群值。 此代码将显示异常值。
df1 = data.frame(A = c(rnorm(15,20,3),7,8,35,32)) #15 rnorm and 4 extreme values
bplot=boxplot(df1)
bplot$out
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.