我希望使用dplyr
包中的group_by
来适应多个nls函数,但我不确定如何传递多个起始值。我们举一个更简单的例子(见?nls
为灵感)。用dplyr拟合多个nls函数
DNase1 <- subset(DNase, Run == 1)
modelDNase1 <- DNase1 %>%
do(model = nls(density ~ 1/(1 + exp((xmid - log(conc))/scal)),
data = .,
start = list(xmid = 0, scal = 1),
algorithm = "plinear"))
所以我在这里适合一个单一的模型。但是,如果我想延长这个,所以我安装了以下内容:
DNase$Run <- factor(DNase$Run)
modelDNase <- DNase %>%
group_by(Run) %>%
do(model = nls(density ~ 1/(1 + exp((xmid - log(conc))/scal)),
data = .,
start = list(xmid = 0, scal = 1),
algorithm = "plinear"))
我将如何通过对多个start
参数? purrr
包是否有用?
莫非您将组的起始值添加到您的数据框中,然后执行类似'start = list(xmid =。$ xmid [1] ...)'? – Gregor
嗯,我不这么认为。数据是长格式的(请参阅'data(DNase,package =“datasets”)') – nathaneastwood
让我们改述一下:如果将起始值添加到数据框(每个组内重复的常量),我认为您可以使用方法在我的第一条评论中提出。我不确定'。$'语法是否可以工作,这可能是一个语法问题。如果你的列被称为'xmid',你甚至可以做'start = list(xmid = xmid [1],...)' – Gregor