使用Facebook siMMMulator包时遇"promise already under evaluation"错误求助
解决siMMMulator包step_1_create_baseline递归参数引用错误
问题原因
你遇到的promise already under evaluation错误,核心是step_1_create_baseline函数的默认参数my_variables = my_variables属于递归引用——函数试图用参数自身作为默认值,而全局环境中未提前定义同名的my_variables变量。这个变量本该由step_0_define_basic_parameters生成并传入全局环境。
解决步骤
正确保存step_0的输出
step_0_define_basic_parameters会返回包含基础参数的列表,必须将其赋值给全局环境的my_variables,才能被step_1的默认参数调用:# 运行step_0并保存结果到全局变量 my_variables <- step_0_define_basic_parameters() # 再执行step_1 step_1_create_baseline()显式传递参数(更稳妥)
避开默认参数的设计坑,直接把step_0的结果作为参数传给step_1,无需依赖全局变量:# 保存step_0结果到任意变量名 sim_params <- step_0_define_basic_parameters() # 显式传递参数 step_1_create_baseline(my_variables = sim_params)更新包到最新版本
这种参数设计问题可能是旧版本的bug,尝试安装项目的最新版:# 若未安装devtools先执行此句 install.packages("devtools") devtools::install_github("facebookexperimental/siMMMulator")
内容的提问来源于stack exchange,提问作者charlotteamy
相关产品推荐
相关产品推荐

