我在闪亮的应用中使用共享软件包ASReml
。为了创建模型,我需要使用asreml()
函数。我首先创建名为data1
的数据。
如果我使用asreml
函数,它可以正常工作:
model<-asreml(fixed=TRAIT~TEMOIN,random=~PANEL,data=data1,na.method.X="include",na.method.Y="include")
并创建了model
问题在于我想创建很多不同的模型以便选择最好的模型。对我来说最简单的方法是创建一个返回模型列表的函数。例如,我做了这个:
Model.list.creator=function(data.sle){
model<-asreml(fixed=TRAIT~TEMOIN,random=~PANEL,data=data.sle,na.method.X="include",na.method.Y="include")
models=list(model)
return(models)
}
如果我使用Results=Model.list.creator(data.sle=data1)
在R控制台中使用该功能,我会使用Results[[1]]
获取模型。
如果我在我的闪亮应用程序中使用该功能,它会返回错误:Error in eval(expr, envir, enclos) : object 'data.sle' not found
...只是在显示函数的结果之后!!
注意:mod的计算是在observe
循环中进行的。
提前感谢您对此问题的任何帮助
答案 0 :(得分:0)
help(observe)“......观察者就像一个反应式表达式,因为它可以读取反应值并调用反应式表达式,并且当这些依赖性发生变化时会自动重新执行。但与反应式表达式不同,它不会产生一个结果,不能用作其他反应式表达式的输入...“ 尝试使用被动反应。
答案 1 :(得分:0)
我在VSNi论坛上找到了一个解决方案 - http://www.vsni.co.uk/forum/viewtopic.php?t=1081 将公式分配给全局环境使它们可用,即使asreml函数在一个闪亮的应用程序的函数内调用。