我创建了一个定义两个变量的基本函数:Size和Param。
大小仅是一个数字,但Param是一个单词或多个由下划线分隔的单词。
以下是有关函数和数据集的基本概念:
base_function <- function(Size,Param){
step_1 <- summarySE(alldata, measurevar = Param, groupvars=c("FinalPopSize",
"Time"), conf.interval=0.99)
step_2 <<- subset(step_1,FinalPopSize==Size)
nls(Param~SSlogis(logtime,Asym,xmid,scal), step_2)
}
这是我要馈入此函数的数据的样子:
FinalPopSize Mut_Rate Time NucDiv No_Usable_Sites
10000 1e-04 16100 0.420789 300
10000 1e-04 16100 0.407146 300
10000 1e-04 16100 0.403797 300
10000 1e-04 16100 0.401119 300
10000 1e-04 16100 0.400203 300
10000 1e-04 16100 0.397348 300
当我尝试使用base_function(10000,Mut_Rate)
运行该函数时,我得到一个错误,提示nls:
Error in model.frame.default(formula = ~Param...
似乎变量没有正确传递到nls()
中,而是被读取为“ Param”。
为什么此功能不是subset
或summarySE
?
当我查看step_2时,一切看起来都很好。
此外,当我分别在函数外以及函数外运行nls时,它也可以正常运行:nls(Mut_Rate~SSlogis(logtime,Asym,xmid,scal),step_2)
我没看到什么?
编辑:summarySE
来自Rmisc