Posted on

最近在用OncoPredict包进行药物敏感性预测的时候,出现报错:

Found2batches
Adjusting for0covariate(s) or covariate level(s)
Found181982Missing Data Values
Standardizing Data across genes
Fitting L/S model and finding priors
Finding parametric adjustments
Error in while (change > conv) { : missing value where TRUE/FALSE needed

查看数据,发现里面有很多缺失值,如果删除缺失值NA所在行会损失很多信息(na.omit),所以使用使用KNN算法进行缺失值填补:


sklearn的KNNImputer是一种广泛使用的缺失值插补方法。它被广泛认为是传统插补技术的替代品。在当今世界,数据是从许多来源收集的,用于分析、产生见解、验证理论等等。从不同的资源收集的这些数据通常会丢失一些信息。这可能是由于数据收集或提取过程中的问题导致的,该问题可能是人为错误。处理这些缺失值,成为数据预处理中的一个重要步骤。插补方法的选择至关重要,因为它会对工作产生重大影响。


Expr <-read.delim("GSE13213_symbol.csv",sep = ",",row.names = 1)

##删除全部为NA的行
Expr = Expr[apply(Expr, 1, function(y) any(!is.na(y))),]
testExpr<-as.matrix(Expr)
library(impute)
###knn法补充缺失值
mat <- impute.knn(testExpr)
testExpr <- mat$data

发表评论

邮箱地址不会被公开。 必填项已用*标注