2017-06-08 8 views
0

Ich versuche, mit dem folgenden Code, um eine Unähnlichkeit zu machen:R: NA/NaN/Inf in Fremdfunktionsaufruf (arg 1) für vegdist

BC26bBrayCurtisMatrix<-vegdist(BC2_6b_OTU, method="bray", binary=FALSE, diag=FALSE, upper=FALSE,na.rm = FALSE) 

Ich erhalte diese Fehlermeldung:

Error in vegdist(BC2_6b_OTU, method = "bray", binary = FALSE, diag = FALSE, NA/NaN/Inf in foreign function call (arg 1) 

ich habe versucht:

is.na(BC2_6b_OTU) 

der Ausgang liefert alle FALSCH bis auf 2 Spalten am Ende der Tabelle. Diese sind in meiner BC2_6b_OTU.csv-Datei tatsächlich leer, sagen aber nach dieser is.na-Ausgabe "TRUE". Könnte das das Problem sein? Wenn ja, wie lösche ich diese Zeile?

Photo of R output for is.na

Alle anderen Vorschläge? Ich bin neu bei R und schätze die Hilfe!

Antwort

0

Wenn Sie bestimmte Spalten entfernen möchten, können Sie tun,

x <- x[, c(ncol(x), ncol(x)-1)] 

oder

x <- x[ , !sapply(x, FUN = function(n) any(is.na(n)))) 

Meine Vermutung wäre, dass diese .csv in einem Tabellenkalkulationsprogramm erstellt wurde? In diesem Fall sollten Sie "leere" Spalten am Ende des Datasets entfernen und an einem sauberen Set arbeiten.

Hier ist eine Demonstration, dass NAs Ihr Problem verursachen können.

library(vegan) 

data(varespec) 
vare.dist <- vegdist(varespec) 

varespec$sneakycol1 <- NA 
varespec$sneakycol2 <- NA 

sneaky.dist <- vegdist(varespec, method = "bray") 
+0

Eigentlich entfernt das alles außer der letzten Spalte. Ich benutzte den Code: BC2_6b_OTU_NA <- BC2_6b_OTU [, c (ncol (BC2_6b_OTU), ncol (BC2_6b_OTU) -1)] –

+0

@ LizKimbrough fügen Sie einfach Minus vor col-Nummern und es wird sie ausschließen. –

Verwandte Themen