2016-07-06 6 views
0

を用いて被験者ごとにモデルをフィッティング。R - 私は、多くの被験者に対する観測のセットを持っていると私は各被験者のモデルに合わせたいdata.tableまたはdplyr

I」のパッケージdata.tablefitdistrplusを使用してメートル、だけでなく、dlpyrを使用しようとすることができ

は私のデータがこの形式であると言う:。

#subject_id #observation 
1   35 
1   38 
2   44 
2   49 

は、ここで私はこれまで試したものです:

subject_models <- dt[,fitdist(observation, "norm", method = "mme"), by=subject_id] 

fitdistへの呼び出しがfitdist Oを返すので、これは私が考えるエラーが発生データテーブル/データフレームに格納することはできません。

data.tableまたはdplyrを使用してこれを行うための任意の直感的な方法はありますか?

EDIT: dplyrの回答が提供されましたが、私もdata.tableに感謝します.2つのベンチマークを実行しようとします。

+1

なしリストでモデルをスティック、また

library(purrr) library(dplyr) library(fitdistrplus) dt %>% split(dt$subject_id) %>% map(~ fitdist(.$observation, "norm", method = "mme")) 

を示唆したと仮定しpurrrパッケージ

で達成することができますあなたがそれを単純化することができるまで。 [ここtidyverseでそれをやっについてのビデオだ。]回答@Sumedh用(http://edinbr.org/edinbr/2016/05/11/may-Hadley-Update2-PostingTalk.html) – alistaire

答えて

2

これは簡単に私がその同じことを@alistaireがpurrr

dt %>% split(dt$subject_id) %>% lapply(., function(x) fitdist(x$observation, "norm", method = "mme")) 
+0

感謝。 R/dplyr内でマップ呼び出しを並列化する簡単な方法はありますか? – Bar

+0

@Barは、私がどのように並列化についてコメントあたり – Sumedh

+0

@Bar対応がRでの並列化について十分にない - この技術を示す、あなたは新しい質問を開きたいことをして、あなたがする試みとして試みているものを示します並列化する。 – JasonAizkalns

関連する問題