Geht es auf diesem Pfad um die Datenstrukturen von R, wie Vektoren und Data Frames?
Nicht in erster Linie. Die eigenen Datentypen von R sind atomare Vektoren, Listen (die sich verschachteln lassen), Matrizen, Data Frames und Faktoren; die behandeln die meisten Leitfäden zu Datenstrukturen in R, und Coddys R-Kurs lehrt sie. Dieser Pfad meint die Bedeutung aus der Informatik: Stacks, Queues, verkettete Listen, Hashtabellen, Heaps, Tries, Bäume und Graphen, gebaut in R und dann für Sortieren, Rekursion und Graphalgorithmen genutzt.
Eignet sich R für Datenstrukturen und Algorithmen?
Es geht, mit etwas Reibung. R ist für vektorisierte Statistik gebaut, nicht für Strukturen aus verketteten Knoten, deshalb braucht eine verkettete Liste oder ein Baum mehr Überlegung als in Python, und Coding-Interviews finden selten in R statt. Für Analysten liegt in dieser Reibung der Nutzen: Zu wissen, dass ein Vektor, der in einer Schleife wächst, quadratisch kostet oder dass ein Environment eine Hash-Map ist, sorgt dafür, dass R-Code mit echten Datenmengen skaliert.
Wie baut man in R eine Hash-Map?
Mit einem Environment: h <- new.env(), dann h[[key]] <- value zum Speichern und h[[key]] zum Lesen, was für einen fehlenden Schlüssel NULL liefert. Environments sind gehasht, haben Strings als Schlüssel und Referenzsemantik, also ändert eine Funktion, die eines ändert, es auch für den Aufrufer, anders als bei einem Vektor oder einer Liste. Eine benannte Liste sieht aus wie ein Dictionary, verhält sich aber wie ein Wert: Ändere sie in einer Funktion, und die Kopie des Aufrufers bleibt unberührt.
Scheitert tiefe Rekursion in R?
Das kann passieren. Standardmäßig begrenzt options(expressions = 5000), wie tief Auswertungen verschachtelt sein dürfen, und eine tiefe Rekursion, etwa eine Tiefensuche entlang einer langen Kette, bricht mit dem Fehler evaluation nested too deeply ab. Die Option hochzusetzen verschafft etwas Luft; die verlässliche Lösung ist ein expliziter Stack in einer Schleife, die Struktur, die du in Schritt eins baust.
Welche Kurse auf diesem Pfad werden nicht in R unterrichtet?
Drei: Dynamische Programmierung und die Python-Interviewreihe werden in Python unterrichtet, Bitmanipulation in C++. Sie sind nach den Schritten aufgeführt, jeweils mit einem Link, der den Kurs in seiner eigenen Sprache öffnet. Dynamische Programmierung lässt sich direkt übertragen, eine Memo-Tabelle ist in R ein vorab allozierter Vektor, und aus &, |, ^ und << von C++ werden die Funktionen bitwAnd, bitwOr, bitwXor und bitwShiftL.
Muss ich R können, bevor ich mit diesem Pfad anfange?
Mindestens Vektoren, Listen, Funktionen, Schleifen und Indizierung ab 1. Wenn das neu für dich ist, bringt dich Coddys R-Kurs zuerst dorthin, kostenlos, und dieser Pfad setzt dort an, wo er endet.