2017-01-18 7 views
-1

私はRの初心者で、Stata/SPSSからRに移行しました。変数をグループ化して連続変数の要約を生成するために、Stataで表コマンドを実行しました。私はこれを行うことができる方法はありますか?連続変数のサマリーテーブルをカテゴリ変数で作成する

私はSOの検索、そして私はこのスレッドを見つけました:How to get Summary statistics by group

ハドレーのマップ機能は、私は四分位数を提供するのに役立つ意味と中央値でしたが、私はより多くを必要としますが。具体的には、特定の四分位数の要素の数、要素の特定のレベルの要素の数。

ここでダミーのコードです:

data <- c(62, 60, 63, 59, 63, 67, 71, 64, 65, 66, 68, 66, 
      71, 67, 68, 68, 56, 62, 60, 61, 63, 64, 63, 59) 
grp <- factor(rep(LETTERS[1:4], c(4,6,6,8))) 
df <- data.frame(group=grp, dt=data) 

df %>% 
    data.table::as.data.table(.) %>% 
    split(.,by=c("group"),drop = TRUE,sorted = TRUE) %>% 
    purrr::map(~summary(.$dt)) 

そして

describe(df$group)

は、二つの異なるばらばらのセットを提供します - 他には、基本的な6つの機能を提供しながら、1は、カテゴリ変数に関する記述統計を提供します。私は四分位の中で何が起こっているのかを知る必要があります。

私は上記パッケージHmisc::describeを使用しています。

Rを使用してこれを行うにはどうすればよいですか?私は本当に助けを感謝しています。


サンプル出力:

は私のサンプル出力は次のようになりますが、それはカテゴリ変数の4つのレベルごとにグループ化されるだろう。このようにして、私は、カテゴリ変数の各レベルの連続変数で何が起こっているのかを分析できます。今のところ、出力は3つの異なるコマンドに分散されており、何が起こっているのかを理解することは困難です。ここで

はコマンドです:

df %>% data.table::as.data.table(.) %>% split(.,by=c("group"),drop = TRUE,sorted = TRUE) %>% purrr::map(~summary(.$dt)) 
df %>% data.table::as.data.table(.) %>% split(.,by=c("group"),drop = TRUE,sorted = TRUE) %>% purrr::map(~describe(.$dt)) 
df %>% group_by(group) %>% count(quartile = ntile(dt, 4)) 

[3番目のコマンドのためのクレジットは、この質問に答え人の一人に行く。]

+2

'dplyrs'機能が従うことは非常に簡単です(group)のレベルを集計してから集計します。 – Mateusz1981

+2

'df%>%group_by(group)%>%count(quartile = ntile(dt、4))'?あなたの望む出力はどのように見えますか? – alistaire

+0

awsome @alistaire – Mateusz1981

答えて

0
data <- c(62, 60, 63, 59, 63, 67, 71, 64, 65, 66, 68, 66, 71, 67, 68, 68, 56, 62, 60, 61, 63, 64, 63, 59) 
grp <- c(rep(LETTERS[1:4], c(4,6,6,8))) 
df <- data.frame(group=grp, dt=data) 

library(dplyr) 

df %>% group_by(group) %>% summarise(mdt = mean(dt, na.rm = T)) 
+0

ありがとうございますが、私は四分位の要素の数をどのように知っていますか? – watchtower

+0

グループの分位数? 'by(df、df $ group、summary)' – Mateusz1981

+0

@ Mateusz - 申し訳ありませんが、私は明確ではない場合。私は与えられたグループの四分位数の連続した要素の数と範囲を意味しました。基本的には、要素の数と範囲を計算し、連続関数で計算したいが、それを各グループについて再帰的に行う。それは意味があるのだろうか? – watchtower

関連する問題