Error in unoecdf(cc, pdiff[case], Wi[case] * PTB.Vi[case]) : NA/NaN/Inf in foreign function call

Posted Data+Science+Insight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Error in unoecdf(cc, pdiff[case], Wi[case] * PTB.Vi[case]) : NA/NaN/Inf in foreign function call相关的知识,希望对你有一定的参考价值。

Error in unoecdf(cc, pdiff[case], Wi[case] * PTB.Vi[case]) : 
  NA/NaN/Inf in foreign function call (arg 5)

目录

Error in unoecdf(cc, pdiff[case], Wi[case] * PTB.Vi[case]) :   NA/NaN/Inf in foreign function call (arg 5)

问题:

解决:

完整错误:


问题:

使用survIDINRI包比较新旧模型的差异、遇到错误。

## here consider pbc dataset in survival package as an example
library(survival)
dat=pbc[1:312,]
dat$time=as.numeric(dat$time)
##定义生存结局
dat$status=ifelse(dat$status==2, 1, 0)
##定义时间点
t0=365*5
##基础回归模型变量矩阵
indata0=as.matrix(subset(dat, select=c(time,status,age,bili,albumin)))
##增加1个预测变量新模型
indata1=as.matrix(subset(dat, select=c(time,status,age,bili,albumin,protime)))
##旧模型中预测变量矩阵
covs0<-as.matrix(indata0[,c(-1,-2)])
##新模型中预测变量矩阵
covs1<-as.matrix(indata1[,c(-1,-2)])
library(survIDINRI)
x<-IDI.INF(dat[,2:3], covs0, covs1, t0, npert=1000)
##dat[,2:3]设置生存结局,dat数据集第2、3两列分别是生存时间与终点。
##covs0, covs1,为旧模型与新模型的协变量矩阵
##t0为设置的时间。npert设置迭代次数。
IDI.INF.OUT(x)
##输出结果IDI.INF计算结果:
##m1:Result of IDI. 
##m2:Result of continuous-NRI.
##m3:Result of median improvement in risk score.
IDI.INF.GRAPH(x)

解决:

第一种情况:数据编码问题

如果你的状态变量是二分类,但是编码初始不是0,1,而是1,2那么需要把编码基于业务规则编码回到0,1;

D$status=as.numeric(D$status==2) 

D$status=as.numeric(D$status==1)

第二种情况:格式问题

数据格式的问题,把数据转化为tibble格式;

library(tibble)  
mydata=as_tibble(mydata)

第三种情况:数据中有缺失值NA

删除数据中的缺失值NA(删除包含缺失值的样本)

完整错误:

Error in unoecdf(cc, pdiff[case], Wi[case] * PTB.Vi[case]) : 
  NA/NaN/Inf in foreign function call (arg 5)

综合判别改善指数(Integrated Discrimination Improvement, IDI)。这个指标也用于判断预测模型改善情况,与上一讲的净重新分类指数(NRI)有类似也有不同。
IDI是由Pencina等人于2008年提出的一个非常新的判别指标。由于它考虑了不同切点的情况,可以用来反映模型的整体改善状况,在一定程度上补齐了NRI的短板。同时,虽然AUC也考虑到了不同切点,但是AUC的改善情况在临床中不易解释,IDI也因此弥补了AUC的缺陷,可以形象地展示研究对象被准确重新判别的比例。
因此,当我们在进行2个疾病模型比较,或者2个指标诊断效能比较时,除了传统的ROC曲线及其AUC,也可以同时给出NRI和IDI,更加全面多层次的展示模型的改善情况。

 

参考:survIDINRI package ERROR res.IDI.INF function R - Stack Overflow

参考:survIDINRI/FUN-IDI-ver017.R at master · cran/survIDINRI · GitHub

参考:r - IDI.INF function to compare two Cox regression models, error? - Stack Overflow

参考:r - Error in do_one(nmeth) : NA/NaN/Inf in foreign function call (arg 1) - Stack Overflow

参考:r - Rcorr NA/Nan/Inf in foreign function call - Stack Overflow 

以上是关于Error in unoecdf(cc, pdiff[case], Wi[case] * PTB.Vi[case]) : NA/NaN/Inf in foreign function call的主要内容,如果未能解决你的问题,请参考以下文章

基于linux5.15.5的IMX 参考手册 --- 16

本地使用clearcase下的find命令可以,但远程调用出现cleartool: Error: Not an object in a vob的错误

error: incomplete type 'blink::Event' named in nested name specifier note: forward declarat

MAC: CMake compile CloudCompare error:By not providing "FindQt5PrintSupport.cmake" in CMAK

How to install OpenBazaar Server in CentOS7

HDMI 接收芯片——MS7200