R:使用;识别;在箱线图中查找列名的步骤
在R中,我从一个大约有150列的data.frame中绘制了一个相当大的箱线图。我知道有些“异常”列的分布与数据集的其余部分差异太大,我想准确地确定哪些列 毫不奇怪,没有足够的空间放置标签,即使有,也可能不方便手工检查。所以我想我可以用R的R:使用;识别;在箱线图中查找列名的步骤,r,plot,boxplot,R,Plot,Boxplot,在R中,我从一个大约有150列的data.frame中绘制了一个相当大的箱线图。我知道有些“异常”列的分布与数据集的其余部分差异太大,我想准确地确定哪些列 毫不奇怪,没有足够的空间放置标签,即使有,也可能不方便手工检查。所以我想我可以用R的 识别功能以定位有问题的列。然而,这样一个函数需要x和y坐标,到目前为止,我无法让它工作 我试过了 boxplot(dd.noctr$TGS, outline=F) identify(xy.coords(dd.noctr$TGS)$x, y=xy.coords
识别
功能以定位有问题的列。然而,这样一个函数需要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)))
标签是列名。仅当您单击箱线图中心附近时,此功能才起作用如果要获得异常值列表,可以使用箱线图的“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
是的,就是这样。我想重点是箱线图的x坐标只有1:(箱线图的数量)
xy.coords
无法生成正确的坐标,因此identify
无法找到附近的点。您可以使用a=boxplot(TGS)
然后identify(x=1:ncol(TGS),y=a$stats[3,],labels=a$names,n=1)
作为较短的替代方法$stats[3,]
是每个箱线图的中值向量。