重写锁定的env

时间:2015-11-23 03:35:38

标签: r pvclust

使用pvclust::pvclust,我收到了错误

  

solve.default中的错误(crossprod(X,X / vv)):Lapack例程dgesv:   系统完全是单数:U [2,2] = 0调用:...   pvclust.merge - > lapply - >乐趣 - > msfit - >解决 - > solve.default   执行暂停

即使crossprod(X, X/vv)是奇异矩阵,我也不想停止分析,因此我尝试在if {...}中插入pvclust::msfit块以检查crossprod(X, X/vv)是否为matrixcalc::is.singular.matrix单数或不单NA,如果是,则返回msfit并继续。

保存 my.msfit.R 后,其中if(!is.singular.matrix(...)) {...}else{...}包含原始pvclust::msfit中的pvclust

  

方法:: insertSource(' /myFuncDir/my.msfit.R',包=" pvclust",函数=' msfit&#39)

但我收到错误

  

assign中的错误(this,thisObj,envir = envwhere):     无法更改锁定绑定的值为' msfit'   另外:警告信息:   在methods :: insertSource(filename,package =" pvclust",functions =" msfit",:     不能插入这些(在源代码中找不到):" msfit"

有什么解决方案吗?我应该要求fun.a <- function(a1,a2,a3,a4){ sum1 <- a1 + a2 sum2 <- a2 + a3 sum3 <- a3 + a4 return(list(sum1,sum2,sum3)) } fun.a(1,2,3,'Char') 包裹的作者吗?

==发布==

后添加以下内容

在评论中给出了使用try / catch语法的准确建议,但我认为它不会给我解决方案。

关于我英语能力差,我会提供一个玩具样本来说明情况。

sum3

因为fun.a(1,2,3,'Char')会出错,所以error会返回tryCatch(...,error=expr)

但是,我想返回

  

列出[sum1,sum2,NaN]

如果我使用solve(...),则sum1到sum3(实际上,pvclust::msfit中的fun.a)应该被包装。 但是,msfitpvclust)是锁定包( public String getdata() { String[] columns= new String[]{RowId,RowBusinessName}; Cursor c=OurDatabase.query(TableName,columns,null,null,null,null,null); String Result=""; int iRowId=c.getColumnIndex(RowId); int iRowBusinessName=c.getColumnIndex(RowBusinessName); for(c.moveToFirst();!c.isAfterLast();c.moveToNext()){ Result=Result+c.getString(iRowBusinessName)+"\n"; } return Result; } )的内部函数。

0 个答案:

没有答案