R中的FDR错误fdrtool

时间:2014-04-20 20:28:34

标签: sql r

我使用fdrtool作为我的pvalues,但我有一个错误:

if(max(x)> 1 | min(x)< 0)停止时出错(“输入p值必须全部在0到1的范围内!”):缺少值需要TRUE / FALSE

p值不小于0,大于1。  p值的范围是[1,0]。代码是:

   n=40000

 pval1<-vector(length=n)

 pval1[1:n]= pv1list[["Pvalue"]]

 fdr<-fdrtool(pval1,statistic="pvalue")

1 个答案:

答案 0 :(得分:1)

我运行你的代码没有问题(虽然我无法重现它,因为我没有对象“pvlist”)。

由于你有一个缺失值错误,我的猜测是你在将csv文件读入R时遇到问题。我推荐使用“read.table”函数,因为根据我的经验,它通常从csv中读取数据文件没有错误:

pvlist<- read.table("c:/pvslit.csv", header=TRUE,
sep=",", row.names="id")

现在你要检查行数和缺失:

nrow(pvlist) # is this what you expect?
nrow(na.omit(pvlist)) # how many non-missing rows are there?

此外,您要确保“p值”列不是字符或因子:

str(pvlist) # examining the structure of the dataframe
pvlist[,2] <- as.numeric(pvlist[,2]) # assuming the 2nd column is the pvalue

简而言之,您很可能在读取数据或数据框中的数据类时遇到问题。