lm, вызванный изнутри dlply, выдает ошибку «0 (не NA) случаев» [r]

Я использую dlply() со специальной функцией, которая усредняет наклоны lm() для данных, содержащих некоторые значения NA, и получаю сообщение об ошибке "Ошибка в lm.fit(x, y, offset = offset, single.ok = single.ok, ...) : 0 (не NA) случаев»

Эта ошибка возникает только тогда, когда я вызываю dlply с двумя ключевыми переменными — разделение одной переменной работает нормально.

Досадно, что я не могу воспроизвести ошибку с простым набором данных, поэтому я « Я отправил проблемный набор данных в свой почтовый ящик.

Вот код, максимально свернутый, но все равно выдающий ошибку:

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

Заранее спасибо за любую информацию.

8
задан Drew Steen 1 March 2012 в 16:34
поделиться