alfa diversità wilcox.test
Sto provando a fare il test Wilcox per rilevare la differenza significativa nella diversità alfa ma mostra un errore? physeqN2 è un oggetto phyloseq e Season è una colonna di metadati.
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
Ho provato a farlo in un altro modo ma anche qui ottenendo errore?
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
Grazie molto
Risposte
Penso che questo sia un bug nei dati di input.
Ciò che penso stia succedendo è che i dati di input non sono considerati accoppiati, da qui l'errore paired = paired. L'altro strano errore è x must be numeric. In primo luogo,
- come stai valutando i dati mancanti, non è
-per caso? I dati mancanti devono essere tramite lanansintassi del tipo. - sei sicuro che non ci siano bug di intestazione? Come se un'intestazione venga trascinata nei dati numerici?
Wilcoxan è un test T non parametrico, quindi la radice umida e la radice secca devono corrispondere esattamente allo stesso campione. Quindi non è una radice umida generale rispetto a una radice secca generica, ma umida e secca dallo stesso esemplare. Se questi sono i dati che hai, il programma non pensa che corrisponda.
Se è veramente accoppiato, ancora una volta penso che la fonte dell'errore sia che hai qualche valore mancante che lascia gli accoppiamenti di lunghezze disuguali oppure un bug di intestazione.
Se i dati non sono realmente accoppiati, allora guarderei il test U di Mann-Whitney, sarebbe più facile in questo scenario.
Non uso la sintassi R (solo i dataframe dei panda), quindi non posso dire se la sintassi nel primo esempio è valida, ma è abbastanza chiaro per quanto riguarda il tuo input. In Python generalmente gli dai l'intero dataframe e gli dici di andare a capire.
La realtà è che un sacco di programmi eseguono Wilcoxan, non è necessario utilizzare R se è un test una tantum. Ovviamente se questo fa parte di una pipeline (automazione) è un po 'diverso.