使用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
)应该被包装。
但是,msfit
(pvclust
)是锁定包( 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;
}
)的内部函数。