lm genannt von innen dlply wirft "0 (non-NA) Fällen" Fehler [r]

Ich bin mit dlply() ist eine benutzerdefinierte Funktion, die Durchschnittswerte hängen von lm() passt auf die Daten enthalten NA Werte, und ich bekomme die Fehlermeldung
"Fehler in der lm.fit(x, y, offset = offset in der Einzahl.ok = singular.ok, ...) :
0 (non-NA) Fällen"

Dieser Fehler passiert nur wenn ich call dlply mit den beiden key-Variablen - Trennung durch eine variable funktioniert.

Dummerweise kann ich den Fehler reproduzieren mit einem einfachen Datensatz, so dass ich gepostet habe das problem dataset in meine dropbox.

Hier ist der code, so minimiert wie möglich, während immer noch einen Fehler erzeugt:

masterData <- read.csv("http://dl.dropbox.com/u/48901983/SOquestionData.csv", na.strings="#N/A")

workingData <- data.frame(sample = masterData$sample,
                      substrate = masterData$substrate,
                      el1 = masterData$elapsedHr1,
                      F1 = masterData$r1 - masterData$rK)

#This function is trivial as written; in reality it takes the average of many slopes
meanSlope <- function(df) {
     lm1 <- lm(df$F1 ~ df$el1, na.action=na.omit) #changing to na.exclude doesn't help
     slope1 <- lm1$coefficients[2]
     meanSlope <- mean(c(slope1)) 
}

lsGOOD <- dlply(workingData, .(sample), meanSlope) #works fine

lsBAD <- dlply(workingData, .(sample, substrate), meanSlope) #throws error

Dank im Voraus für jede Einsicht.

  • Ich würde sagen, dass der Fehler ist informativ. Wenn man sich die Werte in jeder Teilmenge der Daten, ich nehme an, Sie finden eine Teilmenge aller NA. Versuchen Sie ersetzen Ihre Film-nennen Sie in Ihrer Funktion mit etwas identifizieren können, dass all(is.na()).
InformationsquelleAutor Drew Steen | 2012-03-01
Schreibe einen Kommentar