Gibt es eine Möglichkeit, das R-Skript nach dem Empfang von Fehlermeldungen fortzusetzen, anstatt die Ausführung anzuhalten?

8

Ich führe gerade ANOVA für ein Projekt in der Schule, das eine große Anzahl von möglichen Läufen (1400 oder so) hat, aber einige von ihnen sind nicht in der Lage, ANOVA in R zu laufen. Ich schrieb ein Skript, um alle ANOVAs laufen zu lassen, aber einige von ihnen werden nicht laufen und die Rout-Datei gibt mir Fehler in contrasts<- ( *tmp* , Wert="contr.treatment"):   Kontraste können nur auf Faktoren mit 2 oder mehr Ebenen angewendet werden Anrufe: aov ... model.matrix - & gt; model.matrix.default - & gt; Kontraste & lt; - Die Ausführung wurde angehalten.

Gibt es eine Möglichkeit, das Skript zu schreiben, das R trotz des Fehlers das Script fortsetzen lässt?

Mein gesamtes Skript, außer dem Laden der Datei, dem Anhängen, dem Erstellen einer Senke, dem Laden der Bibliothek usw. ist ...

%Vor%

Jede Hilfe wäre willkommen.

    
James Anderson 05.12.2010, 14:46
quelle

3 Antworten

8

Siehe die Funktion try() und die Hilfeseite ( ?try ). Sie wickeln Ihren R-Ausdruck in einen try() -Aufruf und wenn es erfolgreich ist, enthält das resultierende Objekt in diesem Fall das angepasste Modell. Wenn dies fehlschlägt, wird ein Objekt mit der Klasse "try-error" zurückgegeben. So können Sie einfach überprüfen, welche Modelle funktionieren und welche nicht.

Sie können testen, ob Sie die Zusammenfassung für das Modell oder nur eine Fehlernachricht ausdrucken möchten, z. B .:

%Vor%     
Gavin Simpson 05.12.2010, 15:23
quelle
4

Ich verwende failwith im Paket plyr . Sie können dies in Kombination mit llply verwenden und Ihre Funktion umschließen.

    
Maiasaura 05.12.2010 21:30
quelle
1

Mit den Funktionen try () und cousins, die über die Hilfeseite für try () verbunden sind, können Sie auf eine Fehlerbedingung testen, entsprechende Maßnahmen wie das Schreiben in ein Fehlerprotokoll (oder nichts tun) ergreifen und ordnungsgemäß fortfahren.

    
42- 05.12.2010 15:19
quelle

Tags und Links