Jac*_*nry 3 r bioinformatics dataframe
我有一个计数矩阵,其中包含 NA 值。
\n我使用将它们设置为 0
\ncounts[is.na(counts)] <- 0\nRun Code Online (Sandbox Code Playgroud)\n然后成功将它们设置为 0,我可以看到这一点。
\n但是当我尝试使用时
\nDESeqDataSetFromMatrix(counts, colData = data.frame(colnames(counts)), design = ~1)\nRun Code Online (Sandbox Code Playgroud)\n我收到错误
\nError in validObject(.Object) : invalid class \xe2\x80\x9cDESeqDataSet\xe2\x80\x9d object: NA values are not allowed in the count matrix\nRun Code Online (Sandbox Code Playgroud)\n这看起来很清楚,但我不明白,因为我将所有 NA 值设置为 0,现在如果我这样做
\nany(is.na(counts))\nRun Code Online (Sandbox Code Playgroud)\n我得到了假。
\n非常感谢任何帮助,谢谢!
\n如果你只有 NA,它应该可以工作。
\nlibrary(DESeq2)\n\ncounts = matrix(rnbinom(1000,mu=50,size=1),100,10)\ncolnames(counts) = paste0("c",1:10)\ncounts[sample(length(counts),10)] = NA\ncounts[is.na(counts)] <- 0\n\nDESeqDataSetFromMatrix(counts, colData = data.frame(colnames(counts)), design = ~1)\nRun Code Online (Sandbox Code Playgroud)\n如果你有无限的值,它会给你一个稍微不同的错误:
\ncounts = matrix(rnbinom(1000,mu=100,size=1),100,10)\ncolnames(counts) = paste0("c",1:10)\ncounts[1] = 2.5e9\n\nDESeqDataSetFromMatrix(counts, colData = data.frame(colnames(counts)), design = ~1)\nRun Code Online (Sandbox Code Playgroud)\n它看起来像这样:
\nconverting counts to integer mode\nError in validObject(.Object) : \n invalid class \xe2\x80\x9cDESeqDataSet\xe2\x80\x9d object: NA values are not allowed in the count matrix\nIn addition: Warning message:\nIn mde(x) : NAs introduced by coercion to integer range\nRun Code Online (Sandbox Code Playgroud)\n出现错误是因为您无法将大数转换为整数:
\nmax(counts)\n[1] 8007375876\n\nas.integer(max(counts))\n[1] NA\nWarning message:\nNAs introduced by coercion to integer range \nRun Code Online (Sandbox Code Playgroud)\n这小于允许的最大值:
\n.Machine$integer.max\n[1] 2147483647\nRun Code Online (Sandbox Code Playgroud)\n出于分析目的,由于您对基因之间的差异更感兴趣,一种方法是缩小矩阵
\nDESeqDataSetFromMatrix(round(counts/2), colData = data.frame(colnames(counts)), design = ~1)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
5200 次 |
| 最近记录: |