-1.#IND,1.#INF 的判断

本文介绍了在C/C++程序中出现-1.#IND与1.#INF的原因及其含义,通常这些值由除以零的操作产生。文章还提供了如何通过_isnan函数来检查和处理这些特殊值的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C/C++程序运行有时候会出现-1.#IND,1.#INF

一般来说是除数为0得出的结果,INF就是infinite,就是无穷大的意思;IND可能表示很小,不确定。

 

使用类似于pow, exp等等函数时常会产生一个无效数字1.#IND00,在VC下可以通过与一个确定数字比较大小来判断是否产生了无效数字,但这个方法在DEV-CPP下却是行不通的。

 

其实解决办法很简单,使用   float.h中一个函数_isnan即可:

int_isnan(double x);

 

当x是一个无效值(NaN, Not a Number) 时,返回非零值,否则返回0。

rm(list=ls()) phe <- read.csv("phe(2).csv") DAS28_ESR <- phe[,1:2] fenceng <- read.table("exp.txt") data <- readRDS("expr_data.rds") table(rownames(data) %in% colnames(fenceng)) ##DEGS library(limma) group_data <- phe[,c(1,3)] data <- data.frame(t(data)) data$X <- rownames(data) data <- merge(group_data,data,by="X") data_sorted <- data[order(data[[2]], decreasing = TRUE), ] rownames(data_sorted) <- data_sorted[,1] group <- factor(data_sorted[,2],levels = c("RA","healthy control")) data1 <- data.frame(t(data_sorted[,-c(1,2)])) dimnames=list(rownames(data1),colnames(data1)) exprSet=matrix(as.numeric(as.matrix(data1)),nrow=nrow(data1),dimnames=dimnames) exprSet_symbol1 <- aggregate(x = exprSet, by = list(rownames(exprSet)), FUN = mean) rownames(exprSet_symbol1)=exprSet_symbol1[,1] exprSet_symbol1=exprSet_symbol1[,2:ncol(exprSet_symbol1)] dimnames=list(rownames(exprSet_symbol1),colnames(exprSet_symbol1)) exprSet=matrix(as.numeric(as.matrix(exprSet_symbol1)),nrow=nrow(exprSet_symbol1),dimnames=dimnames) exprSet=exprSet[rowMeans(exprSet)>0,] res.pca <- prcomp(t(exprSet), scale = TRUE) library(factoextra) fviz_pca_ind(res.pca,col.ind = group) design <- model.matrix(~group) colnames(design) <- levels(group) design fit <- lmFit(exprSet,design) fit2 <- eBayes(fit) allDiff=topTable(fit2,adjust='fdr',coef=2,number=Inf) saveRDS(allDiff,"allDiff.rds") #allDiff <- readRDS("allDiff.rds") library(dplyr) diffgene <- allDiff %>% filter(adj.P.Val < 0.05) %>% filter(abs(logFC) >0.5) LDYDEGS <- read.csv("李东宇DEGS.csv",row.names = 1) table(rownames(diffgene) %in% rownames(LDYDEGS)) JIAOJI_DEGS <- diffgene[rownames(diffgene) %in% rownames(LDYDEGS),] saveRDS(diffgene,file = "diffgene.rds") saveRDS(JIAOJI_DEGS,"JIAOJI_DEGS.rds") saveRDS(exprSet,"exprSet.rds") 给我讲解以上的R代码
06-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值