Вы не предоставили данные, которые воспроизводят указанную вами ошибку в вашем сообщении, поэтому трудно точно узнать, что не так в вашем примере.
Функция fisher.test
автоматически игнорирует пропуски, которые у вас есть в ваших данных, и не производит неправильных значений p (и вы не упоминаете пример, где это неправильно, и в каком смысле это неправильно ). См. Здесь
> fisher.test(c(NA, 1, 1, 1, 1, 2, 2, 2, 2), c(1, 1, 1, 1, 1, 2, 2, 2, 2))
Fisher's Exact Test for Count Data
data: c(NA, 1, 1, 1, 1, 2, 2, 2, 2) and c(1, 1, 1, 1, 1, 2, 2, 2, 2)
p-value = 0.02857
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
1.339059 Inf
sample estimates:
odds ratio
Inf
. Тот же анализ с удалением первой пары удаленных дает тот же результат, что и при включении пропусков.
> fisher.test(c(1, 1, 1, 1, 2, 2, 2, 2), c(1, 1, 1, 1, 2, 2, 2, 2))
Fisher's Exact Test for Count Data
data: c(1, 1, 1, 1, 2, 2, 2, 2) and c(1, 1, 1, 1, 2, 2, 2, 2)
p-value = 0.02857
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
1.339059 Inf
sample estimates:
odds ratio
Inf
Однако у вас может возникнуть проблема с эта строка
lapply (df, fisher.test, na.omit(df), y=df$AH)
, поскольку na.omit(df)
будет передана в качестве третьего аргумента в fisher.test
, который является рабочим пространством. Этого должно быть достаточно с вашим начальным вызовом, хотя вы можете столкнуться с проблемами, если у вас нет двух категорий для каждой независимой переменной.
Просто удалите строку parseXML
, и она отлично работает:
$(document).ready(function() {
$.ajax({
type: "GET",
url: "score1.xml",
dataType: "xml",
success: function(xml) {
var $xml = $(xml);
$home = $xml.find("home");
$("#home").text($home.text());
}
});
});
Я удалила эту строку:
var xmlDoc = $.parseXML(xml);
И теперь она отлично работает.