Seite 2 von 2

Re: R-Klausur | For- und If-Loops

Verfasst: Fr Apr 20, 2018 12:52 pm
von Athomas
Sehr Ihr die for-Schleife in dieser Gruppe "schmutziger" Spracheigenschaften, deren Verwendung nur einmal in hundert Jahren gerechtfertigt ist?
An einer for-Schleife ist natürlich nix schmutzig, aber sie ist speziell in R häufig überflüssig, bremst und verhindert die Entwicklung einer Vektor-Denke - die ja ein wesentlicher Bestandteil der R-Philosophie ist.

Ein Anfänger, der R richtig lernen möchte - d.h. eine dauerhafte Nutzung über die nächsten Hausaufgaben hinaus im Sinn hat - sollte sie meiden wie der Teufel das Weihwasser :D !

Re: R-Klausur | For- und If-Loops

Verfasst: Fr Apr 20, 2018 4:01 pm
von EDi
Schleifen sind wichtig und nicht in R wegzudenken.

Man sollte dann aber bitte passende Aufgaben dazu stellen.
R ist Vektor-orientiert und darauf sollte man beim Lehren eine Fokus setzen. Sonst lernt man nicht die Stärken von R.

(aber ich habe auch das Gefühl, dass man in der Oberstufe heute weniger über Matrix-Algebra, Eigenwerte, etc lernt :().

Re: R-Klausur | For- und If-Loops

Verfasst: Fr Apr 20, 2018 4:17 pm
von bigben
Also ich habe in meinem Mathematikleistungskurs damals vor 25 Jahren schon keinerlei Matrizenrechnung gelernt und Eigenwerte standen nicht im Lehrplan, da bin ich mir ganz sicher.
Habe das bei aller Statistikbegeisterung nie so wirklich nachgeholt, was mir immer mal wieder auf die Füße fällt.

Was wäre denn eine anfängertaugliche Aufgabe, die man in R vorzugsweise mit einer for Schleife lösen sollte? Sind nicht alle einfachen Aufgaben in R ohne lösbar?

LG,
Bernhard

Re: R-Klausur | For- und If-Loops

Verfasst: Sa Apr 21, 2018 2:10 pm
von jogo
Es gibt schon einige Situationen, in denen man eine Iteration nicht einfach durch apply() o.ä. ersetzen kann, z.B. wenn in einer Reihe benachbarte Elemente verwendet werden müssen. (Besonders wenn die Elemente selbst komplex sind, z.B. Dataframes, ist es nicht mehr mit apply() u.ä. getan.)
Als Beispiel möchte ich die Fibonacci-Zahlen nennen. Üblicherweise gibt es zwei Varianten, deren Berechnung zu programmieren:
a) rekursiv
b) iterativ.
Beide Varianten sollte man kennen und auch deren Vor- und Nachteile.

Gruß, Jörg

Re: R-Klausur | For- und If-Loops

Verfasst: Sa Apr 21, 2018 5:41 pm
von bigben
Aber Fibonaccizahlen macht man doch später, wenn man zeigen will, wie ineffizient die sich anbietende rekursive Lösung ohne Memoization ist. Dafür werden Fibonaccizahlen wahrscheinlich schon seit den 1950ern eingesetzt. Die kann man nicht einfach so vorziehen für die for-Schleife.

Re: R-Klausur | For- und If-Loops

Verfasst: Mo Apr 23, 2018 8:38 am
von jogo
bigben hat geschrieben: Sa Apr 21, 2018 5:41 pm Aber Fibonaccizahlen macht man doch später, ... Die kann man nicht einfach so vorziehen für die for-Schleife.
Das kannst Du ja halten wie Du willst, m.E. spricht nichts dagegen, bestimmte Grundtypen von Algorithmen recht früh zu beschreiben.
... wenn man zeigen will, wie ineffizient die sich anbietende rekursive Lösung ohne Memoization ist. Dafür werden Fibonaccizahlen wahrscheinlich schon seit den 1950ern eingesetzt. Die kann man nicht einfach so vorziehen für die for-Schleife.
code-technisch ist die Rekursion sehr elegant und damit auch effizient (ein Aspekt der Effizienz). Allerdings sind Rekursionen meistens in der Laufzeit nicht effizient.
Was die Code-Effizienz der Rekursion angeht, ist natürlich bei den Fibonacci-Zahlen der Unterschied zur Iterativen Lösung nicht besonders groß. Dafür besteht auch bei der Iteration noch die Chance, ineffizient zu programmieren.
Das wäre bestimmt interessant, in einer Gruppe die Aufgabe zu stellen, dass jeder nach belieben programmieren darf und anschließend die Lösungen zu diskutieren.

Gruß, Jörg