我使用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")
答案 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
简而言之,您很可能在读取数据或数据框中的数据类时遇到问题。