各位大侠:我有这样一个程序index=as.numeric(which(MAF==0 | MAF==1))+1 其中MAF里边没都是0和1之间的数,我输出的结果是index=numeric(0),而不是具体的数值,请问是怎么回事,谢谢大家

0
已邀请:
0

xiaoxingxing 2017-11-30 回答

MAF==0 MAF==1 给出的结果是TRUE 或者FALSEwhich (TRUE|FALSE)  which(FALSE|TRUE) which(TRUE|TRUE)   的结果都是1, 否则which(FALSE|FALSE) 为0 
根据你的描述,which(FALSE|FALSE)  为0  ;输出的结果就变成了 numeric(0)
 
 
0

engikeer 2017-12-08 回答

numeric(0)并不是0,而是长度为0数值,也就是数值型的空值。
应该是在as.numeric()转换的时候产生了空值(很有可能是as.numeric(NULL)得到的),而空值与任何数值计算的结果仍然是空值,所以最终结果仍然是空值。
可以单独检测下which(MAF==0 | MAF==1)的执行结果

要回复问题请先登录注册