R-使用data.table或dplyr为每个受试者拟合模型

R-使用data.table或dplyr为每个受试者拟合模型,r,data.table,dplyr,model-fitting,R,Data.table,Dplyr,Model Fitting,我对许多主题都有一套观察结果,我想为每个主题建立一个模型 我正在使用软件包data.table和FitDistripPlus,但也可以尝试使用dlpyr 假设我的数据为以下形式: #subject_id #observation 1 35 1 38 2 44 2 49 以下是我迄今为止所尝试的: subject_models <- dt[,fitdist(observation, "norm", metho

我对许多主题都有一套观察结果,我想为每个主题建立一个模型

我正在使用软件包
data.table
FitDistripPlus
,但也可以尝试使用
dlpyr

假设我的数据为以下形式:

#subject_id #observation
1           35
1           38
2           44
2           49
以下是我迄今为止所尝试的:

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

subject\u models这可以通过
purr
软件包轻松实现

“我想这和阿利斯泰尔建议的是一样的

library(purrr)
library(dplyr)
library(fitdistrplus)
dt %>% split(dt$subject_id) %>%  map( ~ fitdist(.$observation, "norm", method = "mme"))
或者,如果没有
purr

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

这可以通过
purr
包轻松实现

“我想这和阿利斯泰尔建议的是一样的

library(purrr)
library(dplyr)
library(fitdistrplus)
dt %>% split(dt$subject_id) %>%  map( ~ fitdist(.$observation, "norm", method = "mme"))
或者,如果没有
purr

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

将模型粘贴在列表列中,直到您可以简化它。将模型粘贴在列表列中,直到您可以简化它。感谢您的回答@Sumedh。有没有一种简单的方法可以在R/dplyr中并行化map调用?@Bar,我对R中的并行化还不够了解respond@Bar根据您关于如何并行化的评论,您可能需要打开一个新的question,展示这项技术,然后展示您尝试并行化的内容。@JasonAizkalns当然,我现在就打开一个。谢谢您的回答@Sumedh。有没有一种简单的方法可以在R/dplyr中并行化map调用?@Bar,我对R中的并行化还不够了解respond@Bar根据您关于如何并行化的评论,您可以ant打开一个新问题,展示这项技术,然后展示您尝试并行化的内容。@JasonAizkalns当然,我现在打开一个。