2014-01-19 3 views
15

あなたのための迅速な1、最愛Rの達人:計算パーセンタイル

infertデータセットのうち、基本的な統計情報を取得するには、この演習では、私は割り当てをやっていると私は尋ねてきた(それはです組み込み)、具体的には列の1つinfert$ageです。データセットに精通していない人のために

:見つける私はに頼まれたまで、私は、すべて大丈夫だったの列、分散、歪度、標準偏差の中央値を見つけるために持っていた

> table_ages  # Which is just subset(infert, select=c("age")); 
    age 
1 26 
2 42 
3 39 
4 34 
5 35 
6 36 
7 23 
8 32 
9 21 
10 28 
11 29 
... 
246 35 
247 29 
248 23 

列 "パーセンタイル"

私は今まで何も見つかりませんでした。おそらく、ギリシャ語の間違った言葉を翻訳したことがあります。それは "ποσοστημόρια"だった、Googleの翻訳は英語を "百分位数"と指摘した。

infert$ageの "パーセンタイル"を見つけるためのチュートリアルやアイデアはありますか?

+7

を参照してくださいに '記述する(table_ages)を使用する?quantile'多分? – A5C1D2H2I1M1N2O1R2T1

+0

@AnandaMahtoこれは残りの演習の感触に合うように基本的に見えます。私はそうだったと思う。 あなたはちょうど私のソリューションに感謝しました:p –

答えて

22

ベクトルxを注文し、ベクトルの半分の値を見つけると、ちょうど中央値、つまり50パーセンタイルが見つかりました。任意のパーセンテージに同じロジックが適用されます。ここに2つの例があります。

x <- rnorm(100) 
quantile(x, probs = c(0, 0.25, 0.5, 0.75, 1)) # quartile 
quantile(x, probs = seq(0, 1, by= 0.1)) # decile 
2
table_ages <- subset(infert, select=c("age")) 
summary(table_ages) 
#   age  
# Min. :21.00 
# 1st Qu.:28.00 
# Median :31.00 
# Mean :31.50 
# 3rd Qu.:35.25 
# Max. :44.00 

これは、彼らが探しているものと考えられます。数値に適用されるsummary(...)は、データの最小、最大、平均、中央値、および25番目と75番目のパーセンタイルを返します。

summary(infert$age) 
# Min. 1st Qu. Median Mean 3rd Qu. Max. 
# 21.00 28.00 31.00 31.50 35.25 44.00 

は番号が同じであるが、形式が異なること

注意。これは、table_agesが1列(年齢)のデータフレームであり、infert$ageが数値ベクトルであるためです。入力してみてくださいsummary(infert)

16

quantile()機能は多分お望みのものですが、質問があいまいなので、quantile()と少し違う何かをする代替の回答を提供します。

ecdf(infert$age)(infert$age) 

各観察下にあるinfert$ageの割合を与えるinfert$ageと同じ長さのベクトルを生成します。 ecdfのドキュメントを読むことができますが、基本的な考え方はecdf()が累積分布を返す関数を提供するということです。あなたは(30サンプルであるパー​​センタイルので、どのような)30の下にあることのちょうど確率を知りたいと思った場合はこのようにecdf(X)(Y)はYの点でXの累積分布の値は、あなたが

ecdf(infert$age)(30) 

を言うことができますこのアプローチとquantile()関数を使用する主な違いは、quantile()では、レベルを出す確率を設定する必要があることです。これは、確率を出すためにレベルを設定する必要があります。 0

0.05、:

0

また、あなたに以下のパーセンタイルを与えるhmiscパッケージを使用することができます。1、0.25、0.5、0.75、0.9、0.95

だけ

関連する問題