TheoreticalEcology / EcoPhyloSim

R package for simulation of biogeographical and phylogenetic data
http://theoreticalecology.github.io/EcoPhyloSim/
0 stars 0 forks source link

LocalPlots #68

Open florianhartig opened 8 years ago

florianhartig commented 8 years ago

Hi Stefan,

du hattest was an der localPlots Funktion geändert, aber ich dummerweise auch ohne das zu comitten (ich brauchte für ein Projekt das Environment der Plots, siehst du dann).

Weil es einen Konflikt gab musste ich mit Hand mergen. Dabei sind mir 2 Sachen ins Auge gefallen

1) Du hast da einen if Abfrage eingeführt und einen Unterschied gemacht ob size Länge 1 hat oder mehr. Der Sinn davon ist mir nicht klar geworden, da der Code auch so wie es war mit size 1 bei mir läuft. Ich hab es jetzt erst mal wieder rausgenommen, weil es nicht mit meinem Code gepasst hast

2) Da ist dieser Trick für den Fall dass n=1 ... wahrscheinlich gab es sonst ein Problem, aber das finde ich irgendwie nicht elegant programmiert. Könnte man da nicht eine andere Lösung finden?

Lange Rede kurzer Sinn - kannst du dir die Funktion noch mal anschauen, ob ich irgendwas von dem was du wolltest zerstört hast, und auch in Bezug auf 2) ?

Meine Revision ist hier

https://github.com/biometry/phylosim/commit/caad07e040c7c38acc9143bd5142c062cae8aa68#diff-1f19365523a0294dde50877c289f9e77

Danke, F

stefan-paul commented 8 years ago

Hallo Florian, die Anfrage ist nur wichtig in Bezug auf die community table. Wenn die Plots unterschiedlich groß sind (also size != 1) dann kann die in der Form in der sie implementiert wurde nicht berechnet werden. Da sie aber für einige andere Funktionen wichtig ist hab ich den Code für size=1 unverändert aus der orginalen Funktion übernommem. Ist wahrscheinlich nicht die eleganteste Lösung... Ich schau nochmal drüber. Gruß, Stefan

florianhartig commented 8 years ago

ja, schau doch noch mal - das wichtigste ist zu checken dass ich nicht zerstört habe.

Dabei noch eine Sache die mir gerade beim compilieren der Vignette aufgefallen ist - es gibt da einen Fehler

pValuesnullModel(simu = simu, abundance = FALSE, localPlotSize =10,numberOfPlots =20, repetitions =100, fun="mpd")Error in if (which.result == "last") which.result = length(simu$Output):argument is of length zero

ich denke dadurch dass eine andere Funktion which.result = NULL übergibt ... kannst du da noch mal schauen?

stefan-paul commented 8 years ago

OK. Bei mir lieuf sie das letzt mal ohne Fehler durch. Ich schaue mal danach.

florianhartig commented 8 years ago

OK, es gab noch andere Probleme in der Vignette, ich denke weil manche Funktionen ein which.resul = NULL übergeben ... ich hab in localPlot jetzt mal

if (which.result == "last" | is.null(which.result)) which.result = length(simu$Output)

gesetzt

florianhartig commented 8 years ago

ok, das hier scheint zu helfen, ich pushe das jetzt mal

if(is.null(which.result)) which.result = "last" if (which.result == "last") which.result = length(simu$Output) simu <- simu$Output[[which.result]]

Wäre trotzdem interessant zu wissen warum die anderen Funktionen Null übergeben.

Ich meine mich zu erinnern dass wir vorher NULL hatten und ich oder du das geändert haben.

stefan-paul commented 8 years ago

Nach meiner Erinnerung war NULL immer das letzte result. Vlt. ist das ja irgendwo verloren gegangen...?

florianhartig commented 8 years ago

schau noch mal - so geht halt jetzt beides, ist ja auch kein Problem, solange nicht irgendwas anderes noch komisch ist.

stefan-paul commented 8 years ago

Ja mach ich morgen. Kann aber frühestens in ein paar Tagen pushen, wenn ich irgendwo Inetrnet zugang habe. Bin ab morgen früh unterwegs...

florianhartig commented 8 years ago

ne, ist nicht eilig, kann auch ne Woche warten, ich war nur gerade dran

stefan-paul commented 8 years ago

Ich habe die Funktion wieder ein bischen geändert. Mit deinen Änderungen hatte ich leider einige Probleme beim Berechnen der community table. Bezüglich deiner Anmerkung in Code noch eine Sache: Die Zeilen am Anfang: if(n ==1){ n <- 2 single = T }else{ single=F } und die entsprechenden Zeilen weiter unten braucht man um im Fall n=1 die community table zu berechen. Das waren noch Zeilen aus dem original Code. Um das zu ändern müsste man die ganze Art in der die community table berechnet wird ändern. Alternativ könnte man bei dem Fall n=1 und community=F einen Fehler werfen (es müssen ja hier sowieso zwei subplots berechnet werden) oder man lässt es wie es ist..?

Ich hab auch die which.simulation wieder auf NULL gesetzt. Das gibt bei mir keinerlei Probleme, auch wenn ich die Vignette kompiliere oder andere Funktionen welche auf die localPlots zugreifen nutze. Wenn es bei dir doch wieder Probleme gibt schau ich wieder drüber.