альфа-разнообразие wilcox.test
Я пытаюсь выполнить тест Уилкокса, чтобы выявить значительную разницу в альфа-разнообразии, но он показывает ошибку? physeqN2 - это объект phyloseq, а сезон - это столбец метаданных.
results = estimate_richness(physeqN2, measures = 'Chao1')
d = sample_data(physeqN2)
# calculate Wilcox Test
Wet.root = results[d[,'Season'] == 'Wet',]
Dry.root = results[d[,'Season'] == 'Dry',]
pmv <-pairwise.wilcox.test(Wet.root, Dry.root)
capture.output(pmv, file = "chao1.16s.wet_vs_Dry.root.txt")
Error;
Error in wilcox.test.default(xi, xj, paired = paired, ...) :
'x' must be numeric
Calls: pairwise.wilcox.test ... compare.levels -> wilcox.test -> wilcox.test.def ault
Execution halted
Я хвае пытался сделать это по-другому, но тут тоже возникает ошибка?
alpha.diversity <- estimate_richness(physeqN2, measures=c("Chao1"))
## Wilcox on observed richness
data <- cbind(sample_data(physeqN2), alpha.diversity)
pmv <-pairwise.wilcox.test(Chao1 ~ Season, data)
capture.output(pmv, file = "chao1.16s.wet_vs_Dry.root.txt")
Error:
Error in if (length(ans) == 0L || as.character(ans[[1L]])[1L] == "~") { :
missing value where TRUE/FALSE needed
Calls: pairwise.wilcox.test ... sapply -> lapply -> FUN -> compare.levels -> [ -> [.formula
Execution halted
Большое спасибо
Ответы
Думаю, это ошибка во входных данных.
По моему мнению, происходит то, что входные данные не считаются парными, отсюда и ошибка paired = paired. Другая странная ошибка x must be numeric. Во-первых,
- как вы оцениваете недостающие данные, это
-случайно не через ? Отсутствующие данные должны указываться черезnanсинтаксис типа. - Вы уверены, что ошибок заголовков нет? Как заголовок перетаскивается в числовые данные?
Вилкоксан - это непараметрический тест Т, поэтому влажный и сухой корень должны соответствовать одному и тому же образцу. Таким образом, это не обычный влажный корень по сравнению с обычным сухим корнем, а влажный и сухой от одного и того же образца. Если это те данные, которые у вас есть, программа считает, что они не совпадают.
Если это действительно пара, я снова думаю, что источником ошибки является недостающее значение, которое оставляет пары неравной длины или, иначе, ошибку заголовка.
Если данные действительно не сопряжены, я бы посмотрел на U-тест Манна-Уитни, в этом сценарии было бы проще.
Я не использую синтаксис R (только кадры данных pandas), поэтому не могу сказать, действителен ли синтаксис в первом примере, но это довольно ясно относительно вашего ввода. В Python вы обычно просто передаете ему весь фрейм данных и говорите, чтобы он работал.
Реальность такова, что Уилкоксан выполняет множество программ, вам не нужно использовать R, если это разовый тест. Очевидно, что если это часть конвейера (автоматизация), это немного отличается.