2017-11-14 7 views
-3

Ich habe zwei Datenrahmen df1 und df2. beide haben 240 obs. von 204 Variablen. Ich habe überprüft und es gibt keine fehlenden oder NA-Werte in diesen Dateien. Jedoch, wenn ich durch diese Formel zurückbilden:Fehler in der Regression in r

library(broom) 
fit4 <- lapply(names(df1), function(x){ 
    dd = tidy(lm(df1[[x]] ~ df2[[x]])) 
    data.frame(name = x, dd)}) 

Es zeigt folgende Fehlermeldungen:

Fehler in lm.fit (x, y, offset = Versatz singular.ok = singular.ok, ...) : NA/NaN/Inf in ‚y‘

Antwort

1

Als Fehler selbst heißt es, könnte es zu NaN-Werte oder auf unendliche Werte zurückzuführen sein, so dass Sie ein benötigen, um diese Werte zu löschen oder zuweisen Null für sie.

Um NaN aus dem gesamten Datenrahmen zu entfernen, müssen Sie eine Funktion erstellen (wie beschrieben here).

is.nan.data.frame <- function(x) 
do.call(cbind, lapply(x, is.nan)) 

dd[is.nan(dd)] <- 0 

Für die unendlichen Zahlen können Sie sich auf diese question beziehen. Die beiden schnellere Methoden sind alle unendliche Werte entfernen:

dd[!rowSums(!is.finite(dd)),] 

oder sie ersetzen mit 0:

dd[!is.finite(dd)] <- 0