6

R boxplot 関数は、データを調べるのに非常に便利な方法です。データのおおよその位置と分散、および外れ値の数の視覚的な要約をすばやく提供します。さらに、データセットの問題をすばやく見つけるために、外れ値を特定したいと思います。

これらの外れ値の値には、 を使用してアクセスできますmyplot$out。残念ながら、これらの外れ値のラベルは利用できないようです。プロット自体にラベルを表示することを目的としたパッケージがいくつかあります: http://www.r-statistics.com/2011/01/how-to-label-all-the-outliers-in-a-boxplot/、しかしそれらはうまく機能せず、これらの外れ値をリストしたいだけです。それらをプロット自体に含める必要はありません。

何か案は?

4

3 に答える 3

18

あなたはほとんどの大変な仕事を自分でやった. 残っているのは比較だけです。

##First create some data 
##You should include this in your question)
set.seed(2)
dd = data.frame(x = rlnorm(26), y=LETTERS)

外れ値をつかむ

outliers = boxplot(dd$x, plot=FALSE)$out

元のデータ フレームから外れ値を抽出する

dd[dd$x %in% outliers,]

さらなる説明:

変数dd$xは 26 個の数値のベクトルです。変数outliersには、外れ値の値が含まれます (R コンソールにdd$xとを入力するだけです)。outliersコマンド

dd$x %in% outliers

dd$x と外れ値の値に一致します。つまり:

[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE <snip>

角括弧表記dd[dd$x %in% outliers,]は、データ フレームの行をdd返しdd$x %in% outliersますTRUE

于 2012-06-21T08:49:00.940 に答える
2

xwhich(x < myplot$stats[1] | x > myplot$stats[5])はあなたのデータです。

于 2012-06-21T08:50:45.427 に答える
2

入力データが名前付き要素をもつベクトルの場合、boxplot は名前を保持します。

set.seed(2)
x <- rlnorm(26)
names(x) <- LETTERS
outliers <- boxplot(x, plot=FALSE)$out
outliers
       I        O        U        X 
7.275219 5.943089 8.091541 7.061459 
于 2012-06-21T08:59:32.060 に答える