我正在尝试在R中使用MonteCarlo方法运行电源分析。
我已经创建了一个包含两个参数的函数,它输出一个布尔值(手动测试参数的所有相关值)。我还运行了MonteCarlo函数的小示例,以确保我理解它并且它工作得很好。
然而,当我尝试运行真实的东西时,我得到了以下错误消息:
Error in parse(text = all_funcs_found[i]) : <text>:1:1: unexpected '::'
1: ::我通读了MonteCarlo函数(which I found here)的源代码,发现
#loop through non-primitive functions used in func and check from which package they are
for(i in 1:length(all_funcs_found)){
if(environmentName(environment(eval(parse(text=all_funcs_found[i]))))%in%env_names){
packages<-c(packages,env_names[which(env_names==environmentName(environment(eval(parse(text=all_funcs_found[i])))))])
}
}这对我来说是没有意义的--为什么会有问题呢?
谢谢你的任何想法。
发布于 2021-05-04 02:10:03
我找到了答案:我编写的函数调用了来自特定库的函数,形式为library form::functionname。
如果您手动使用该函数一次,则可以正常工作,但会使MonteCarlo中断。
我解决了这个问题,首先加载了相关的库,然后从main函数的定义中删除了‘library library::’部分。然后MonteCarlo就可以正常运行了。
https://stackoverflow.com/questions/67373539
复制相似问题