### Lexical Scoping # # erleichtert die fortgeschrittene Programmierung, ist aber relativ schwer zu beherrschen, deshalb wird es hier nicht behandelt demo(scoping) # recht illustrativ ### Namespaces pi # pi ist im base-Paket definiert pi = 1 # man darf pi jedoch "überschreiben" base::pi # um das ursprüngliche pi wieder zu finden ivreg # Nicht definiert... AER:::ivreg # Aber im AER Paket schon # get() funktioniert analog zu assign, um Objekte aus beliebigen Ebenen anzusprechen ################################################# ### Umgang mit Fehlern ################################################# ### Fehler in einzelnen Codezeilen a get(a) ?get # get benötigt als Eingabe einen Variablennamen als "character". get("a") # Fehler in einzelnen Codezeilen sollten kein Problem darstellen, da diese einfach aufgeführt und überprüft werden können # Hauptfehlerquellen, Klammern zuviel/zuwenig, Anführungszeichen zuviel/zuwenig, Kommas zuviel/zuwenig, etc. ### Fehler in komplexen Objekten (Schleifen, Funktionen) # Zerlege das Problem in einzelne Teile, die jeweils auf Funktionalität überprüft werden # zudem: ?stop ?warnings ?message # Zu Fehlern in verschachtelten Funktionen siehe: Ligges (2008), S. 86-91 ################################################# ### Aufgaben G ################################################# # 0. Gehen Sie den obigen Code noch einmal in Ruhe durch, lesen Sie, wenn nötig, die Hilfedateien zu den Funktionen # und Ligges (2008), insbesondere das gesamte 4. Kapitel!