web-dev-qa-db-ja.com

データセット列のパーセンタイルの計算

あなたのための簡単なもの、最愛の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の「パーセンタイル」を見つけるためのチュートリアルやアイデアはありますか?

31

ベクトル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
48
Roman Luštrik

quantile()関数はおそらくあなたが望むことの多くを行いますが、質問があいまいだったので、quantile()とはわずかに異なる何かをする別の答えを提供します。

_ecdf(infert$age)(infert$age)
_

_infert$age_と同じ長さのベクトルを生成し、各観測値の下にある_infert$age_の割合を与えます。 ecdfドキュメントを読むことができますが、基本的な考え方は、ecdf()が経験累積分布を返す関数を提供するということです。したがって、ecdf(X)(Y)は、YのポイントでのXの累積分布の値です。30未満になる確率を知りたい場合(つまり、サンプル内の百分位数30)は、次のようになります。

_ecdf(infert$age)(30)
_

このアプローチとquantile()関数の使用の主な違いは、quantile()では、レベルを取得する確率を入力する必要があり、これを取得するにはレベルを入力する必要があることです。確率を出します。

25
randy
_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)と入力してみてください。

4
jlhoward

{dplyr}を使用:

library(dplyr)

# percentiles
infert %>% 
  mutate(PCT = ntile(age, 100))

# quartiles
infert %>% 
  mutate(PCT = ntile(age, 4))

# deciles
infert %>% 
  mutate(PCT = ntile(age, 10))
1
Gorka

次のパーセンタイルを提供するhmiscパッケージを使用することもできます。

0.05、0.1、0.25、0.5、0.75、0.9、0.95

Describe(table_ages)を使用するだけです

0
Cormac O'Keeffe