首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免R fisher.test工作空间错误

如何避免R fisher.test工作空间错误
EN

Stack Overflow用户
提问于 2016-10-25 21:38:56
回答 1查看 2.7K关注 0票数 2

我正在对大量的列联表进行费舍尔精确测试,并将p-val保存到生物信息学问题中。其中一些列联表很大,所以我已经尽可能地增加了工作空间;但是当我运行以下代码时,我得到一个错误:

代码语言:javascript
复制
result <- fisher.test(data,workspace=2e9)
LDSTP is too small for this problem. Try increasing the size of the workspace.

如果我增加工作区的大小,我会得到另一个错误:

代码语言:javascript
复制
result <- fisher.test(data,workspace=2e10)
cannot allocate memory block of size 134217728Tb

现在,我可以只模拟pvals:

代码语言:javascript
复制
result <- fisher.test(data, simulate.p.value = TRUE, B = 1e5)

但我担心我需要大量的模拟才能得到准确的结果,因为在某些情况下,我的参数可能非常小。

因此,我的问题是,是否有某种方法可以先发制人地检查列联表是否太复杂而无法准确计算?仅在这些情况下,我就可以切换到使用B=1e10或其他工具进行大量模拟。或者至少跳过那些值为"NA“的表,这样我的工作就真正完成了?

EN

回答 1

Stack Overflow用户

发布于 2017-05-25 17:23:24

也许您可以在fisher.test失败时使用tryCatch来获得所需的行为?可能是这样的:

代码语言:javascript
复制
tryCatchFisher<-function(...){
    tryCatch(fisher.test(...)$p.value,
    error = function(e) {'too big'})
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40241566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档