2017-07-06 3 views
-1

Ich baue ein Modell in R und ich habe einen Datenrahmen der täglichen Temperaturdaten in Kelvin (. CSV-Datei). Ich werde das Modell für jede Station einzeln ausführen. Die Literatur, die ich dem Modell zugrunde liege: Wenn die Temperatur über 285.15 ansteigt, wird das Laichen induziert und ER oder effektive Reproduktionsreserven werden auf 0 reduziert, was bedeutet, dass meine graphische Ausgabe auf Null fallen und nach einer Temperaturerhöhung wieder steigen sollte.Wenn sonst Modell reagiert nicht

enter image description here

Meine Frage lautet: Wie würde ich diesen Befehl in R schreiben?
Bisher habe ich geschrieben:

spawn <- ER 
spawning <- ifelse(Mussel_Daily_Temp$AS_TEMP > 285.15, 'ER-ER', 0) 

Ich habe auch versucht:

if(temperature > 285.15) {ER-ER} 

Meine Parameter wie folgt aussehen:

param <- list(Temperature = Mussel_Daily_Temp$AS_TEMP, etc....) 

Jede mögliche Hilfe würde geschätzt!

Best,

J

+1

Vielleicht verstehe ich das nicht richtig, aber du versuchst nur eine Flagge zu machen, wenn die Temperatur 285,15 übersteigt? Sie können dies tun: 'Mussel_Daily_Temp $ temp_flag = 0; Mussel_Daily_Temp $ temp_flag [Mussel_Daily_Temp $ AS_TEMP> 285.15] = 1' und das markiert die Beobachtungen mit mindestens dieser Temperatur. – svenhalvorson

+0

Es gibt mir diesen Fehler: Fehler in '* tmp *' $ Mussel_Daily_Temp: Objekt des Typs 'Schließung' ist nicht Teilmenge Tabelle –

+0

Sorry, ich musste es bearbeiten. Bist du sicher, dass dies fehlgeschlagen ist? Mussel_Daily_Temp $ AS_TEMP muss interpretierbar sein mit einem> Symbol – svenhalvorson

Antwort

2

Ohne Daten Beispiel ist dies ein bisschen eine Herausforderung ...

Gerade jetzt Sie sind einfach eine 0 für alles bei einer Temperatur Erstellen> 285,15

Mein begrenztes Verständnis von Mathematik besagt, dass ER-ER gleich Null ist - also Ihre TRUE oder FALSE Ergebnisse in Ihrer ifelse-Anweisung sind beide 0.

Wenn Sie Laich auf die Temperatur

spawn <- ER[Mussel_Daily_Temp$AS_TEMP == 285.15] 

dann Ihre ifelse Set-Anweisung anpassen

spawning <- ifelse(Mussel_Daily_Temp$AS_TEMP > 285.15, 'ER-spawn', 0) 

Ich glaube, Sie etwas in der Nähe bekommen, was Sie sich wünschen.

+0

Vielen Dank für Ihre Antwort. Leider gibt es zurück: "Fehler in eval (ei, envir): Objekt ER nicht gefunden". ER ist Teil meines Zustandes: 'Zustand <- c (E = 0,000124, V = 0,06, ER = 0)' –

+1

wieder - wenn Sie tatsächliche Beispiele Ihrer Daten zur Verfügung gestellt haben, kann dies angesprochen werden. ohne es bist du allein. –