2016-10-25 4 views
0

Я собираюсь выполнить точный тест рыбака на большое количество таблиц непредвиденных обстоятельств и сохранить p-val для проблемы биоинформатики. Некоторые из этих таблиц непредвиденных обстоятельств являются большими, поэтому я увеличил рабочее пространство настолько, насколько могу; но когда я запускаю следующий код, я получаю сообщение об ошибке:Как избежать ошибок в рабочем пространстве R fisher.test

result <- fisher.test(data,workspace=2e9) 
LDSTP is too small for this problem. Try increasing the size of the workspace. 

если я увеличить размер рабочего пространства я получаю другую ошибку:

result <- fisher.test(data,workspace=2e10) 
cannot allocate memory block of size 134217728Tb 

Теперь я мог бы просто имитируют pvals:

result <- fisher.test(data, simulate.p.value = TRUE, B = 1e5) 

, но Im fear Мне нужно огромное количество симуляций, чтобы получить точные результаты, так как в некоторых случаях мои реквизиты могут быть очень маленькими.

Таким образом, мой вопрос заключается в том, есть ли способ превентивно проверить, является ли таблица непредвиденных обстоятельств слишком сложной для расчета точно? В тех случаях я мог переключиться на использование большого количества симуляций с B = 1e10 или что-то в этом роде. Или, по крайней мере, просто пропустите эти таблицы со значением «NA», чтобы моя работа действительно заканчивалась?

+0

Опишите данные лучше. –

+0

данные для каждого из тестов являются матрицей nx2 интергеров в диапазоне от 0 до 300. Размер матрицы меняет тест на тест: 2x2, 10x2, 20x2 и т. Д. Я мог бы попытаться угадать, какие матрицы вызовут ошибку (например, более крупные) и оценить pval для тех, но в идеале - более чистое решение. – nak3c

ответ

1

Возможно, вы используете код tryCatch для получения желаемого поведения, когда fisher.test не удается? Что-то вроде этого может быть:

tryCatchFisher<-function(...){ 
    tryCatch(fisher.test(...)$p.value, 
    error = function(e) {'too big'}) 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^