Track
40 R-Programmier-Interview-Fragen und Antworten für alle Niveaus
Eine gute Vorbereitung auf ein R-Programmiergespräch ist ein entscheidender Faktor, um erfolgreich zu sein. Dieser Erfolg hat im Grunde zwei Seiten: Für einen Arbeitssuchenden bedeutet er, dass er von dem Unternehmen eingestellt wird, während er für das Unternehmen selbst bedeutet, dass es die perfekte Besetzung für seine Stelle findet.
Um deine Chancen auf ein erfolgreiches Vorstellungsgespräch zu erhöhen, ist es immer von Vorteil, wenn du im Voraus weißt, welche Fragen dir als Arbeitssuchende/r gestellt werden können - oder welche Fragen du einem Bewerber/einer Bewerberin stellen kannst, wenn du ein/e Personalverantwortliche/r oder ein/e Recruiter/in bist.
In diesem Artikel geht es um 40 grundlegende Fragen zur R-Programmierung im Vorstellungsgespräch und die Antworten darauf für alle Führungsebenen sowie um einige allgemeine Fragen im Vorstellungsgespräch. Der Einfachheit halber sind alle technischen Fragen in drei Stufen unterteilt: Einsteiger-, Mittelstufen- und Fortgeschrittenenfragen.
Als zusätzliche Ressourcen für deine Vorbereitung auf ein R-Programmiergespräch kannst du die folgenden hilfreichen Ressourcen nutzen:
- Statistik-Interview-Fragen in R üben
- Data Science Interview Vorbereitung
- 21 Top-Interviewfragen für Datenwissenschaftler
Allgemeine R-Programmierung Interviewfragen
Zu Beginn eines R-Interviews kann ein Interviewer dem Bewerber einige allgemeine, nicht-technische Fragen über seine allgemeine Erfahrung mit R stellen:
- Wie lange arbeitest du schon in R?
- Was für Aufgaben erledigst du in R?
- Wie schätzt du deinen Kenntnisstand in R ein?
Wenn du arbeitssuchend bist, solltest du dir im Voraus Gedanken über diese und ähnliche Fragen machen und deine Antworten vorbereiten. Mach dir keine Sorgen, wenn du noch keine echte Berufserfahrung in R hast: Es reicht, wenn du dein Praktikum in der R-Programmierung oder deine Einzel- oder Gruppenprojekte in R beschreibst, die du während deines Studiums durchgeführt hast.
Wenn du dich für eine Einstiegsposition bewirbst, erwartet dein Gesprächspartner außerdem nicht unbedingt umfangreiche (oder gar keine) Berufserfahrung in R. Da du zu diesem Gespräch eingeladen wurdest, hat das Unternehmen deinen Lebenslauf ohnehin als attraktiv empfunden.
Interviewfragen für Einsteiger in die R-Programmierung
Beginnen wir mit einigen der grundlegenden technischen R-Interview-Fragen, die dir dein potenzieller Arbeitgeber stellen könnte. Diese setzen voraus, dass du die Grundlagen beherrschst und einige praktische Erfahrungen im Umgang mit R hast.
1. Was ist R, und was sind seine wichtigsten Merkmale?
R ist eine Programmiersprache und -umgebung, die häufig zur Lösung von Data Science-Problemen verwendet wird und speziell für statistische Berechnungen und Datenvisualisierung entwickelt wurde. Seine wichtigsten Merkmale sind:
- Offene Quelle
- Interpretiert (d.h. es unterstützt sowohl funktionale als auch objektorientierte Programmierung)
- Hochgradig erweiterbar durch eine große Sammlung von Data-Science-Paketen
- Funktional und flexibel (Benutzer können ihre eigenen Funktionen definieren und verschiedene Parameter bestehender Funktionen anpassen)
- Kompatibel mit vielen Betriebssystemen
- Kann leicht in andere Programmiersprachen und Frameworks integriert werden
- Ermöglicht leistungsstarke statistische Berechnungen
- Bietet eine Vielzahl von Datenvisualisierungstools zur Erstellung von Diagrammen in Publikationsqualität
- Ausgestattet mit der Befehlszeilenschnittstelle
- Unterstützt von einer starken Online-Community
2. Was sind die Nachteile der Verwendung von R?
- Nicht-intuitive Syntax und daher eine steile Lernkurve, vor allem für Anfänger in der Programmierung
- Relativ langsam
- Ineffiziente Speichernutzung
- Inkonsistente und oft schwer lesbare Dokumentation der Pakete
- Einige Pakete sind von geringer Qualität oder werden schlecht gewartet
- Mögliche Sicherheitsbedenken aufgrund des Open-Source-Charakters
3. Nenne und definiere einige grundlegende Datentypen in R.
- Numerisch-dezimaleZahlen.
- Ganzzahlig-ganzzahlige Zahlen.
- Zeichen - einBuchstabe, eine Zahl oder ein Symbol oder eine beliebige Kombination davon, eingeschlossen in normalen oder einfachen Anführungszeichen.
- Faktor-Kategorienaus einer vordefinierten Menge möglicher Werte, oft mit einer eigenen Reihenfolge.
- Logisch - diebooleschen Werte TRUE und FALSE, die unter der Haube als 1 bzw. 0 dargestellt werden.
4. Auflisten und Definieren einiger grundlegender Datenstrukturen in R.
- Vektor - eineeindimensionale Datenstruktur, die zum Speichern von Werten desselben Datentyps verwendet wird.
- Liste - einemehrdimensionale Datenstruktur, in der Werte eines beliebigen Datentyps und/oder andere Datenstrukturen gespeichert werden können.
- Matrix - einezweidimensionale Datenstruktur, in der Werte desselben Datentyps gespeichert werden.
- Datenrahmen - einezweidimensionale Datenstruktur, in der Werte eines beliebigen Datentyps gespeichert werden können, wobei jede Spalte Werte desselben Datentyps speichern muss.
5. Wie importiere ich Daten in R?
Die Basis von R bietet wichtige Funktionen zum Importieren von Daten:
read.table()
-die allgemeinste Funktion der R-Basis zum Importieren von Daten, nimmt tabellarische Daten mit jeder Art von Feldtrennzeichen auf, einschließlich spezieller Trennzeichen wie |.read.csv()
-getrennte Werte (CSV) Dateien mit.
als Dezimaltrennzeichen.read.csv2()
-Semikolon-getrennte Wertedateien mit,
als Dezimaltrennzeichen.read.delim()
Dateien mit tabellengetrennten Werten (TSV) mit.
als Dezimaltrennzeichen.read.delim2()
Dateien mit tabellengetrennten Werten (TSV) mit,
als Dezimaltrennzeichen.
In der Praxis kann jede dieser Funktionen zum Importieren von Tabellendaten mit jeder Art von Feld- und Dezimaltrennzeichen verwendet werden: Die Verwendung für die angegebenen Dateiformate ist nur eine Frage der Konvention und der Standardeinstellungen. Hier ist zum Beispiel die Syntax der ersten Funktion: read.table(file, header = FALSE, sep = "", dec = ".")
. Die anderen Funktionen haben die gleichen Parameter mit unterschiedlichen Standardeinstellungen, die jederzeit explizit überschrieben werden können.
Die tidyverse Pakete readr und readxl bieten einige weitere Funktionen zum Importieren bestimmter Dateiformate. Jede dieser Funktionen kann durch die Einstellung verschiedener optionaler Parameter weiter verfeinert werden.
readr
read_tsv()
-Dateien mit tabellengetrennten Werten (TSV).read_fwf()
-Dateien mit fester Breite.read_log()
-Web-Log-Dateien.read_table()
,read_csv()
,read_csv2()
undread_delim()
- äquivalent zu den Basisfunktionen von R.
readxl
read_excel()
-Excel-Dateien.read_csv()
-Äquivalent zu der Funktion aus den Basis-R-Funktionen.
Wenn du tiefer in das Laden von Daten in R eintauchen möchtest, kannst du das Tutorial " Wie man Daten in R importiert" durcharbeiten.
6. Was ist ein Paket in R, und wie installierst und lädst du Pakete?
Ein R-Paket ist eine Sammlung von Funktionen, Code, Daten und Dokumentation, die eine Erweiterung der Programmiersprache R darstellt und für die Lösung bestimmter Aufgaben entwickelt wurde. R wird mit einer Reihe von vorinstallierten Paketen geliefert, und andere Pakete können von den Nutzern aus Repositories installiert werden. Das beliebteste zentrale Repository, in dem Tausende verschiedener R-Pakete gespeichert sind, heißt Comprehensive R Archive Network (CRAN).
Um ein R-Paket direkt von CRAN zu installieren, müssen wir den Paketnamen in Anführungszeichen eingeschlossen an die Funktion install.packages()
übergeben, wie folgt: install.packages("package_name")
. Um mehr als ein Paket von CRAN in einem Rutsch zu installieren, müssen wir einen Zeichenvektor verwenden, der die in Anführungszeichen eingeschlossenen Paketnamen enthält, wie folgt: install.packages(c("package_name_1", "package_name_2")
. Um ein R-Paket manuell zu installieren, müssen wir das Paket zunächst als Zip-Datei auf unseren Computer herunterladen und dann die install.packages() function
ausführen:
install.packages("path_to_the_locally_stored_zipped_package_file", repos=NULL, type="source")
Um ein installiertes R-Paket in die R-Arbeitsumgebung zu laden, können wir entweder die Funktionen library()
oder require()
verwenden. Jeder von ihnen nimmt den Paketnamen ohne Anführungszeichen auf und lädt das Paket, z.B. library(caret)
. Das Verhalten dieser Funktionen ist jedoch unterschiedlich, wenn sie das benötigte Paket nicht finden können: library()
gibt einen Fehler aus und stoppt die Programmausführung, während require()
eine Warnung ausgibt und die Programmausführung fortsetzt.
7. Wie erstellt man einen Datenrahmen in R?
1. aus einem oder mehreren Vektoren gleicher Länge - indem du die Funktion data.frame()
verwendest:
df <- data.frame(vector_1, vector_2)
2. Aus einer Matrix - indemdu die Funktion data.frame()
verwendest:
df <- data.frame(my_matrix)
3. Aus einer Liste von Vektoren gleicher Länge - mit Hilfe der Funktion data.frame()
:
df <- data.frame(list_of_vectors)
4. Aus anderen Datenrahmen:
- Um die Datenrahmen horizontal zu kombinieren(nur wenn die Datenrahmen die gleiche Anzahl von Zeilen haben und die Datensätze gleich und in der gleichen Reihenfolge sind), verwende die Funktion
cbind()
:
df <- cbind(df1, df2)
- Um die Datenrahmen vertikal zu kombinieren(nur wenn sie die gleiche Anzahl gleichnamiger Spalten desselben Datentyps haben und in derselben Reihenfolge erscheinen), verwende die Funktion
rbind()
:
df <- rbind(df1, df2)
8. Wie fügst du in R eine neue Spalte zu einem Datenrahmen hinzu?
- Benutze das $-Symbol:
df <- data.frame(col_1=10:13, col_2=c("a", "b", "c", "d"))
print(df)
df$col_3 <- c(5, 1, 18, 16)
print(df)
Ausgabe:
col_1 col_2
1 10 a
2 11 b
3 12 c
4 13 d
col_1 col_2 col_3
1 10 a 5
2 11 b 1
3 12 c 18
4 13 d 16
- Benutze eckige Klammern:
df <- data.frame(col_1=10:13, col_2=c("a", "b", "c", "d"))
print(df)
df["col_3"] <- c(5, 1, 18, 16)
print(df)
Ausgabe:
col_1 col_2
1 10 a
2 11 b
3 12 c
4 13 d
col_1 col_2 col_3
1 10 a 5
2 11 b 1
3 12 c 18
4 13 d 16
- Benutze die Funktion
cbind()
:
df <- data.frame(col_1=10:13, col_2=c("a", "b", "c", "d"))
print(df)
df <- cbind(df, col_3=c(5, 1, 18, 16))
print(df)
Ausgabe:
col_1 col_2
1 10 a
2 11 b
3 12 c
4 13 d
col_1 col_2 col_3
1 10 a 5
2 11 b 1
3 12 c 18
4 13 d 16
In jedem der drei Fälle können wir einen einzelnen Wert oder einen Vektor zuweisen oder die neue Spalte auf der Grundlage der vorhandenen Spalten dieses Datenrahmens oder anderer Datenrahmen berechnen.
9. Wie entferne ich Spalten aus einem Datenrahmen in R?
1. Indem du die Funktion select()
des Pakets dplyr der tidyverse-Sammlung verwendest. Der Name jeder zu löschenden Spalte wird mit einem vorangestellten Minuszeichen übergeben:
df <- select(df, -col_1, -col_3)
Wenn wir stattdessen zu viele Spalten zu löschen haben, ist es sinnvoller, den Rest der Spalten beizubehalten, anstatt die interessanten Spalten zu löschen. In diesem Fall ist die Syntax ähnlich, aber den Namen der zu behaltenden Spalten wird kein Minuszeichen vorangestellt:
df <- select(df, col_2, col_4)
2. Wenn wir nur eine Spalte löschen wollen, weisen wir dem Select-Parameter der Funktion den Spaltennamen mit einem vorangestellten Minuszeichen zu. Um mehr als eine Spalte zu löschen, weisen wir diesem Parameter einen Vektor zu, der die erforderlichen Spaltennamen mit vorangestelltem Minuszeichen enthält:
df <- subset(df, select=-col_1)
df <- subset(df, select=-c(col_1, col_3))
Wenn wir stattdessen zu viele Spalten zu löschen haben, ist es sinnvoller, den Rest der Spalten beizubehalten, anstatt die interessanten Spalten zu löschen. In diesem Fall ist die Syntax ähnlich, aber es wird kein Minuszeichen hinzugefügt:
df <- subset(df, select=col_2)
df <- subset(df, select=c(col_2, col_4))
10. Was ist ein Faktor in R?
Ein Faktor in R ist ein spezieller Datentyp, der Kategorien (auch Level genannt) aus einer vordefinierten Menge möglicher Werte akzeptiert. Diese Kategorien sehen aus wie Zeichen, aber unter der Haube werden sie als ganze Zahlen gespeichert. Oft haben solche Kategorien eine eigene Ordnung. Eine Spalte in einem Datenrahmen, die die Optionen der Likert-Skala zur Bewertung der Ansichten enthält ("stimme voll und ganz zu", "stimme zu", "stimme eher zu", "stimme weder zu noch nicht zu", "stimme eher nicht zu", "stimme überhaupt nicht zu", "stimme überhaupt nicht zu") "stimme eher nicht zu", "stimme nicht zu", "stimme überhaupt nicht zu"), sollte ein Faktor sein, um diese innere Ordnung zu erfassen und sie in den kategorialen Arten von Diagrammen angemessen widerzuspiegeln.
11. Was ist RStudio?
RStudio ist eine Open-Source-IDE (integrierte Entwicklungsumgebung), die als grafisches Frontend für die Arbeit mit der Programmiersprache R ab Version 3.0.1 weit verbreitet ist. Es hat viele hilfreiche Funktionen, die es unter R-Nutzern sehr beliebt machen:
- Benutzerfreundlich
- Flexibel
- Multifunctional
- Ermöglicht die Erstellung wiederverwendbarer Skripte
- Verfolgt die Betriebsgeschichte
- Automatisches Vervollständigen des Codes
- Bietet detaillierte und umfassende Hilfe zu jedem Objekt
- Ermöglicht einen einfachen Zugriff auf alle importierten Daten und erstellten Objekte
- Erleichtert den Wechsel zwischen Terminal und Konsole
- Ermöglicht eine Plotvorschau
- Unterstützt die effiziente Erstellung und Freigabe von Projekten
- Kann mit anderen Programmiersprachen verwendet werden (Python, SQL, etc.)
Um mehr darüber zu erfahren, was RStudio ist und wie du es installierst und benutzt, kannst du dem RStudio Tutorial folgen.
12. Was ist R Markdown?
R Markdown ist ein freies und quelloffenes R-Paket, das ein Authoring-Framework für die Erstellung von Data Science-Projekten bietet. Damit können wir eine einzige .rmd-Datei schreiben, die Erzählung, Code und Datenplots kombiniert, und diese Datei dann in einem ausgewählten Ausgabeformat darstellen. Die wichtigsten Merkmale von R Markdown sind:
- Die daraus resultierenden Dokumente sind gemeinsam nutzbar, vollständig reproduzierbar und haben Publikationsqualität.
- Ein breites Spektrum an statischen und dynamischen Ausgaben und Formaten, wie HTML, PDF, Microsoft Word, interaktive Dokumente, Dashboards, Berichte, Artikel, Bücher, Präsentationen, Anwendungen, Websites, wiederverwendbare Vorlagen usw.
- Einfache Verfolgung der Versionskontrolle.
- Es werden mehrere Programmiersprachen unterstützt, darunter R, Python und SQL.
13. Wie erstelle ich eine benutzerdefinierte Funktion in R?
Um eine benutzerdefinierte Funktion in R zu erstellen, verwenden wir das Schlüsselwort function
und die folgende Syntax:
function_name <- function(parameters){
function body
}
- Funktionsname - derName des Funktionsobjekts, der für den Aufruf der Funktion nach ihrer Definition verwendet wird.
- Funktionsparameter - diedurch ein Komma getrennten und in Klammern gesetzten Variablen, die bei jedem Aufruf der Funktion auf die tatsächlichen Argumentwerte gesetzt werden.
- Funktionskörper - einStück Code in geschweiften Klammern, das die Operationen enthält, die bei jedem Funktionsaufruf in einer vordefinierten Reihenfolge an den Eingabeargumenten ausgeführt werden. Normalerweise enthält der Funktionskörper die
return()
Anweisung (oder Anweisungen), die die Funktionsausgabe zurückgibt, oder dieprint()
Anweisung (oder Anweisungen), um die Ausgabe zu drucken.
Ein Beispiel für eine einfache benutzerdefinierte Funktion in R:
my_function <- function(x, y){
return(x + y)
}
14. Nenne einige beliebte Datenvisualisierungspakete in R.
- ggplot2 - dasbeliebteste R-Paket zur Datenvisualisierung, mit dem du eine Vielzahl von Diagrammen erstellen kannst.
- Lattice - für dieDarstellung multivariater Daten als Kacheln (Spalier) aus mehreren Diagrammen.
- Plotly - zumErstellen interaktiver Diagramme in Publikationsqualität.
- highcharter - füreinfaches dynamisches Plotten, bietet viele flexible Funktionen, Plugins und Themen; ermöglicht die Darstellung verschiedener R-Objekte mit einer Funktion.
- Merkblatt zurErstellung interaktiver Karten.
- ggvis - für dieErstellung interaktiver und hochgradig anpassbarer Diagramme, auf die in jedem Browser zugegriffen werden kann, indem man die Infrastruktur von Shiny nutzt.
- Patchwork - für dieKombination mehrerer Parzellen, meist verschiedener Arten, auf derselben Grafik.
Intermediate R Programming Interview Fragen
Bei erfahrenen Praktikern ist es wahrscheinlich, dass der Interviewer einige Fragen stellen wird, die detailliertere Kenntnisse von R erfordern:
15. Wie weise ich einer Variablen in R einen Wert zu?
- Die Verwendung des Zuweisungsoperators
<-
, z. B.my_var <- 1—
ist die gängigste Art, einer Variablen in R einen Wert zuzuweisen. - Verwendung des Gleichheitsoperators
=
, z. B.my_var = 1
-für die Zuweisung von Werten zu Argumenten innerhalb einer Funktionsdefinition. - Der Rechtszuweisungsoperator
->
, z. B.my_var -> 1
, kann in Pipes verwendet werden. - Die Verwendung der globalen Zuweisungsoperatoren, entweder nach links (
<<-
) oder nach rechts (->>
), z.B.my_var <<- 1
- um eine globale Variable innerhalb einer Funktionsdefinition zu erstellen.
16. Was sind die Voraussetzungen für die Benennung von Variablen in R?
- Ein Variablenname kann eine Kombination aus Buchstaben, Ziffern, Punkten und Unterstrichen sein. Er darf keine anderen Symbole enthalten, auch keine Leerzeichen.
- Ein Variablenname muss mit einem Buchstaben oder einem Punkt beginnen.
- Wenn ein Variablenname mit einem Punkt beginnt, darf diesem Punkt keine Ziffer folgen.
- Reservierte Wörter in R (
TRUE
,for
,NULL
, etc.) können nicht als Variablennamen verwendet werden. - Bei den Variablennamen wird zwischen Groß- und Kleinschreibung unterschieden.
Im Kurs Effizienten R-Code schreiben findest du weitere Best Practices für das Schreiben von Code in R.
17. Welche Arten von Schleifen gibt es in R und wie lautet die Syntax der einzelnen Typen?
1. For-Schleife - durchläufteine Sequenz so oft wie ihre Länge (es sei denn, die Anweisungen break
und/oder next
werden verwendet) und führt für jedes Element der Sequenz dieselbe Reihe von Operationen durch. Dies ist die häufigste Art von Schleifen. Die Syntax einer for-Schleife in R lautet wie folgt:
for (variable in sequence) {
operations
}
2. While-Schleife: Führtdieselbe Reihe von Operationen aus, bis eine vordefinierte logische Bedingung (oder mehrere logische Bedingungen) erfüllt ist - es sei denn, die Anweisungen break
und/oder next
werden verwendet. Anders als bei for-Schleifen wissen wir nicht im Voraus, wie viele Iterationen eine while-Schleife ausführen wird. Bevor wir eine while-Schleife ausführen, müssen wir eine Variable (oder mehrere Variablen) zuweisen und dann ihren Wert innerhalb des Schleifenkörpers bei jeder Iteration aktualisieren. Die Syntax einer while-Schleife in R lautet wie folgt:
variable assignment
while (logical condition) {
operations
variable update
}
3. Wiederholungsschleife:Führt immer wiederdieselben Vorgänge aus, bis eine vordefinierte Unterbrechungsbedingung (oder mehrere Unterbrechungsbedingungen) erfüllt ist. Um eine solche Bedingung einzuführen, muss eine Wiederholungsschleife einen Codeblock mit einer if-Anweisung enthalten, der wiederum die Anweisung break
in seinem Körper enthalten muss. Wie bei while-Schleifen wissen wir nicht im Voraus, wie viele Iterationen eine Wiederholungsschleife ausführen wird. Die Syntax für eine Wiederholungsschleife in R lautet wie folgt:
repeat {
operations
if(break condition) {
break
}
}
Du kannst mehr über Schleifen in R in unserem separaten Tutorial lesen.
18. Wie aggregiere ich Daten in R?
Um Daten in R zu aggregieren, verwenden wir die Funktion aggregate()
. Diese Funktion hat die folgenden wesentlichen Parameter, in dieser Reihenfolge:
x
-den zu aggregierenden Datenrahmen.by
-eine Liste der Faktoren, nach denen gruppiert werden soll.FUN
-eine Aggregatfunktion, um die zusammenfassenden Statistiken für jede Gruppe zu berechnen (z. B.mean
,max
,min
,count
,sum
).
19. Wie führe ich Daten in R zusammen?
1. Die Funktion cbind()
kann nur verwendet werden, wenn die Datenrahmen die gleiche Anzahl von Zeilen haben und die Datensätze gleich und in der gleichen Reihenfolge sind:
df <- cbind(df1, df2)
2. Verwende die Funktion rbind()
, um die Datenrahmen vertikal zu kombinieren - allerdings nur, wenn sie die gleiche Anzahl gleichnamiger Spalten desselben Datentyps haben und in derselben Reihenfolge erscheinen:
df <- rbind(df1, df2)
3. Verwende die Funktion merge()
, um Datenrahmen nach einer gemeinsamen Spalte zusammenzuführen, in der Regel eine ID-Spalte:
- Innere Verbindung:
df <- merge(df1, df2, by="ID")
- Links verbinden:
df <- merge(df1, df2, by="ID", all.x=TRUE)
- Rechts verbinden:
df <- merge(df1, df2, by="ID", all.y=TRUE)
- Äußere Verbindung:
df <- merge(df1, df2, by="ID", all=TRUE)
4. Verwende die Funktion join()
des dplyr-Pakets, um Datenrahmen nach einer gemeinsamen Spalte, normalerweise einer ID-Spalte, zusammenzuführen:
df <- join(df1, df2, by="ID", type="type_of_join")
Der Parameter type
nimmt einen der folgenden Werte an: "inner", "left", "right" oder "full".
20. Wie verkettet man Strings in R?
Wir können zwei oder mehr Strings in R mit den Funktionen paste()
oder cat()
verketten. Der erste Ansatz ist beliebter. Beide Funktionen nehmen eine beliebige Anzahl von zu verkettenden Zeichenketten entgegen und können auch einen optionalen Parameter sep
(zusammen mit einigen anderen optionalen Parametern) aufnehmen - ein Zeichen oder eine Folge von Zeichen, die angehängte Zeichenketten in der resultierenden Zeichenkette trennen (standardmäßig ein Leerzeichen).
21. Wie transponiert man zweidimensionale Daten in R?
Wir können einen Datenrahmen oder eine Matrix in R transponieren, so dass die Spalten zu den Zeilen werden und andersherum. Zu diesem Zweck müssen wir die Funktion t()
der Basis R verwenden:
df <- data.frame(col_1=c(10, 20, 30), col_2=c(11, 22, 33))
print(df)
transposed_df <- t(df)
print(transposed_df)
Output:
col_1 col_2
1 10 11
2 20 22
3 30 33
[,1] [,2] [,3]
col_1 10 20 30
col_2 11 22 33
22. Wie kann man in R mehrere Operationen miteinander verknüpfen?
Mit dem Pipe-Operator (%>%
) aus der tidyverse-Sammlung können wir mehrere Operationen in R verketten. Mit diesem Operator kannst du eine Pipeline von Funktionen erstellen, bei der die Ausgabe der ersten Funktion als Eingabe in die zweite Funktion weitergegeben wird und so weiter, bis die Pipeline endet. Dadurch müssen keine zusätzlichen Variablen erstellt werden und die Lesbarkeit des Codes wird deutlich verbessert.
Ein Beispiel für die Verwendung des Pipe-Operators in einem Datenrahmen:
df <- data.frame(a=1:4, b=11:14, c=21:24)
print(df)
df_new <- df %>% select(a, b) %>% filter(a > 2)
print(df_new)
Output:
a b c
1 1 11 21
2 2 12 22
3 3 13 23
4 4 14 24
a b
1 3 12
2 4 13
23. Welche Arten von Datendiagrammen können in R erstellt werden?
Da die Datenvisualisierung eine der starken Seiten der R-Programmiersprachen ist, können wir in R alle Arten von Datenplots erstellen:
- Gängige Arten von Datendiagrammen:
- Balkendiagramm - zeigtdie numerischen Werte kategorischer Daten an.
- Liniendiagramm: Zeigtdie Entwicklung einer Variable, meist im Zeitverlauf.
- Streudiagramm - zeigtdie Beziehungen zwischen zwei Variablen.
- Flächendiagramm, dasauf einem Liniendiagramm basiert, wobei der Bereich unterhalb der Linie gefärbt oder mit einem Muster gefüllt wird.
- Kuchendiagramm - zeigtden Anteil jeder Kategorie kategorischer Daten an der Gesamtmenge.
- Boxplot - zeigteine Reihe von deskriptiven Statistiken der Daten.
- Erweiterte Arten von Datendiagrammen:
- Geigenplot - zeigtsowohl eine Reihe von deskriptiven Statistiken der Daten als auch die Verteilungsform für diese Daten.
- Heatmap: Zeigtdie Größe jedes numerischen Datenpunkts im Datensatz an.
- Treemap - zeigtdie numerischen Werte von kategorischen Daten, oft als Teil des Ganzen.
- Dendrogramm - zeigteine innere Hierarchie und Clusterung der Daten.
- Bubble Plot - zeigtdie Beziehungen zwischen drei Variablen.
- Hexbin-Plot - zeigtdie Beziehungen zwischen zwei numerischen Variablen in einem relativ großen Datensatz.
- Wortwolke - zeigtdie Häufigkeit der Wörter in einem eingegebenen Text an.
- Choropleth-Karte - zeigtaggregierte thematische Statistiken von Geodaten.
- Kreisförmiges Packungsdiagramm - zeigteine innere Hierarchie der Daten und der Werte der Datenpunkte
- usw.
Der Skill Track Data Visualization with R hilft dir, deinen Horizont im Bereich der R-Grafiken zu erweitern. Wenn du die Datenvisualisierung in R lieber in einem breiteren Kontext erlernen möchtest, solltest du den gründlichen und einsteigerfreundlichen Karrierepfad Data Scientist with R erkunden.
24. Was ist Vektor-Recycling in R?
Wenn wir versuchen, eine Operation an zwei R-Vektoren mit unterschiedlichen Längen durchzuführen, erkennt der R-Interpreter unter der Haube den kürzeren, recycelt seine Elemente in der gleichen Reihenfolge, bis die Längen der beiden Vektoren übereinstimmen, und führt erst dann die notwendige Operation an diesen Vektoren durch. Bevor du mit dem Vektor-Recycling beginnst, gibt der R-Interpreter jedoch eine Warnung aus, weil die Längen der Vektoren anfangs nicht übereinstimmen.
Wenn wir zum Beispiel versuchen, den folgenden Zusatz auszuführen:
c(1, 2, 3, 4, 5) + c(1, 2, 3)
Der zweite Vektor wird aufgrund des Vektorrecyclings tatsächlich in c(1, 2, 3, 1, 2)
umgewandelt. Das Endergebnis dieser Operation ist also c(2, 4, 6, 5, 7)
.
Manchmal kann das Recycling von Vektoren von Vorteil sein (z. B. wenn wir die Zyklizität der Werte in den Vektoren erwarten), aber häufiger ist es unangemessen und irreführend. Deshalb sollten wir vorsichtig sein und auf die Längen der Vektoren achten, bevor wir Operationen mit ihnen durchführen.
25. Was ist der Nutzen der next
und break
Anweisungen in R?
Die Anweisung next
wird verwendet, um eine bestimmte Iteration zu überspringen und zur nächsten zu springen, wenn eine bestimmte Bedingung erfüllt ist. Die Anweisung break
wird verwendet, um die Schleife bei einer bestimmten Iteration anzuhalten und zu verlassen, wenn eine bestimmte Bedingung erfüllt ist. Wenn diese Anweisung in einer der inneren Schleifen einer verschachtelten Schleife verwendet wird, verlässt sie nur diese innere Schleife.
Die Anweisungen next
und break
können in allen Arten von Schleifen in R verwendet werden: for-Schleifen, while-Schleifen und Wiederholungsschleifen. Sie können auch in der gleichen Schleife verwendet werden, z.B.:
for(i in 1:10) {
if(i < 5)
next
if(i == 8)
break
print(i)}
Ausgabe:
[1] 5
[1] 6
[1] 7
26. Was ist der Unterschied zwischen dem str()
und summary()
Funktionen in R?
Die Funktion str()
gibt die Struktur eines R-Objekts und die allgemeinen Informationen darüber zurück, deren genauer Inhalt von der Datenstruktur des Objekts abhängt. Bei einem Vektor werden zum Beispiel der Datentyp der Elemente, der Bereich der Elementindizes und die Elementwerte (oder mehrere erste Werte, wenn der Vektor zu lang ist) zurückgegeben. Für einen Datenrahmen werden seine Klasse (data.frame), die Anzahl der Beobachtungen und Variablen, die Spaltennamen, der Datentyp jeder Spalte und mehrere erste Werte jeder Spalte zurückgegeben.
Die Funktion summary()
liefert die zusammenfassenden Statistiken für ein R-Objekt. Sie wird hauptsächlich auf Datenrahmen und Matrizen angewendet, für die sie die Minimal-, Maximal-, Mittel- und Medianwerte sowie das erste und dritte Quartil für jede numerische Spalte zurückgibt, während sie für die Faktorspalten die Anzahl jeder Stufe zurückgibt.
27. Was ist der Unterschied zwischen dem subset()
und sample()
Funktionen n R?
Die Funktion subset()
in R wird verwendet, um Zeilen und Spalten aus einem Datenrahmen oder einer Matrix oder Elemente aus einem Vektor anhand bestimmter Bedingungen zu extrahieren, z.B.: subset(my_vector, my_vector > 10)
.
Stattdessen kann die Funktion sample()
in R nur auf Vektoren angewendet werden. Sie zieht eine Zufallsstichprobe der vordefinierten Größe aus den Elementen eines Vektors, mit oder ohne Ersetzung. Zum Beispiel, sample(my_vector, size=5, replace=TRUE)
Interviewfragen für fortgeschrittene R-Programmierung
28. Wie erstelle ich eine neue Spalte in einem Datenrahmen in R, die auf anderen Spalten basiert?
1. Benutze die Funktionen transform()
und ifelse()
der Basis R:
df <- data.frame(col_1 = c(1, 3, 5, 7), col_2 = c(8, 6, 4, 2))
print(df)
# Adding the column col_3 to the data frame df
df <- transform(df, col_3 = ifelse(col_1 < col_2, col_1 + col_2, col_1 * col_2))
print(df)
Ausgabe:
col_1 col_2
1 1 8
2 3 6
3 5 4
4 7 2
col_1 col_2 col_3
1 1 8 9
2 3 6 9
3 5 4 20
4 7 2 14
2. Benutze die Funktionen with()
und ifelse()
der Basis R:
df <- data.frame(col_1 = c(1, 3, 5, 7), col_2 = c(8, 6, 4, 2))
print(df)
# Adding the column col_3 to the data frame df
df["col_3"] <- with(df, ifelse(col_1 < col_2, col_1 + col_2, col_1 * col_2))
print(df)
Ausgabe:
col_1 col_2
1 1 8
2 3 6
3 5 4
4 7 2
col_1 col_2 col_3
1 1 8 9
2 3 6 9
3 5 4 20
4 7 2 14
3. Benutze die apply()
Funktion der Basis R:
df <- data.frame(col_1 = c(1, 3, 5, 7), col_2 = c(8, 6, 4, 2))
print(df)
# Adding the column col_3 to the data frame df
df["col_3"] <- apply(df, 1, FUN = function(x) if(x[1] < x[2]) x[1] + x[2] else x[1] * x[2])
print(df)
Output:
col_1 col_2
1 1 8
2 3 6
3 5 4
4 7 2
col_1 col_2 col_3
1 1 8 9
2 3 6 9
3 5 4 20
4 7 2 14
4. Verwende die Funktion mutate()
des Pakets dplyr und die Funktion ifelse()
der Basisversion von R:
df <- data.frame(col_1 = c(1, 3, 5, 7), col_2 = c(8, 6, 4, 2))
print(df)
# Adding the column col_3 to the data frame df
df <- mutate(df, col_3 = ifelse(col_1 < col_2, col_1 + col_2, col_1 * col_2))
print(df)
Ausgabe:
col_1 col_2
1 1 8
2 3 6
3 5 4
4 7 2
col_1 col_2 col_3
1 1 8 9
2 3 6 9
3 5 4 20
4 7 2 14
29. Wie kann ich in R ein Datum aus seiner String-Darstellung analysieren?
Um ein Datum aus seiner String-Repräsentation in R zu analysieren, sollten wir das Paket lubridate aus der tidyverse-Sammlung verwenden. Dieses Paket bietet verschiedene Funktionen zum Parsen einer Zeichenkette und zum Extrahieren des Standarddatums basierend auf dem anfänglichen Datumsmuster in dieser Zeichenkette. Diese Funktionen sind ymd()
, ymd_hm()
, ymd_hms()
, dmy()
, dmy_hm()
, dmy_hms()
, mdy()
, mdy_hm()
, mdy_hms()
, usw., wobei y, m, d, h, m und s jeweils für Jahr, Monat, Tag, Stunden, Minuten und Sekunden stehen.
Wenn wir zum Beispiel die Funktion dmy()
ausführen und ihr eine der Zeichenketten "05-11-2023", "05/11/2023" oder "05.11.2023" übergeben, die dasselbe Datum repräsentieren, erhalten wir das gleiche Ergebnis: 2023-11-05
. Das liegt daran, dass wir in allen drei Fällen trotz der unterschiedlichen Trennzeichen dasselbe Muster haben: der Tag, gefolgt vom Monat, gefolgt vom Jahr.
30. Was ist der Nutzen der switch()
Funktion in R?
Die Funktion switch()
in R ist eine Kontrollanweisung mit mehreren Verzweigungen, die einen Ausdruck anhand von Elementen einer Liste auswertet. Sie hat die folgende Syntax:
switch(expression, case_1, case_2, case_3....)
Der Ausdruck, der an die Funktion switch()
übergeben wird, kann entweder als Zahl oder als Zeichenkette ausgewertet werden, und je nachdem verhält sich die Funktion anders.
1. Wenn der Ausdruck eine Zahl ergibt, gibt die Funktion switch()
das Element aus der Liste auf der Grundlage der Positionsübereinstimmung zurück (d. h. der Index ist gleich der Zahl, die der Ausdruck ergibt). Wenn die Zahl größer ist als die Anzahl der Einträge in der Liste, gibt die Funktion switch()
NULL
zurück. Zum Beispiel:
switch(2, "circle", "triangle", "square")
Ausgabe:
"triangle"
2. Wenn der Ausdruck zu einer Zeichenkette ausgewertet wird, gibt die Funktion switch()
den Wert anhand des Namens zurück:
switch("red", "green"="apple", "orange"="carot", "red"="tomato", "yellow"="lemon")
Ausgabe:
"tomato"
Wenn es mehrere Übereinstimmungen gibt, wird der erste übereinstimmende Wert zurückgegeben. Es ist auch möglich, ein unbenanntes Element als letztes Argument der Funktion switch()
hinzuzufügen, das als Standard-Fallback-Option dient, falls es keine Treffer gibt. Wenn diese Standardoption nicht gesetzt ist und es keine Treffer gibt, gibt die Funktion NULL
zurück.
Die Funktion switch()
ist eine effiziente Alternative zu langen if-else-Anweisungen, da sie den Code weniger repetitiv und besser lesbar macht. Normalerweise wird er für die Auswertung eines einzelnen Ausdrucks verwendet. Wir können noch komplexere verschachtelte Switch-Konstrukte schreiben, um mehrere Ausdrücke auszuwerten. In dieser Form wird die Funktion switch()
jedoch schnell unübersichtlich und verliert damit ihren Hauptvorteil gegenüber if-else-Konstrukten.
31. Was ist der Unterschied zwischen den Funktionen apply()
, lapply()
, sapply()
, und tapply()
?
Alle diese Funktionen ermöglichen es, über eine Datenstruktur zu iterieren, ohne Schleifen zu verwenden, und führen für jedes Element der Struktur dieselbe Operation aus. Sie unterscheiden sich jedoch in Bezug auf die Art der Ein- und Ausgabe und die Funktion, die sie ausführen.
apply()
-nimmt einen Datenrahmen, eine Matrix oder ein Array auf und gibt einen Vektor, eine Liste, eine Matrix oder ein Array zurück. Diese Funktion kann zeilenweise, spaltenweise oder beides angewendet werden.lapply()
-nimmt einen Vektor, eine Liste oder einen Datenrahmen auf und gibt immer eine Liste zurück. Im Falle eines Datenrahmens als Eingabe wird diese Funktion nur spaltenweise angewendet.sapply()
-nimmt einen Vektor, eine Liste oder einen Datenrahmen auf und gibt die einfachste Datenstruktur zurück, d.h. einen Vektor für einen Eingangsvektor, eine Liste für eine Eingangsliste und eine Matrix für einen Eingangsdatenrahmen.tapply()
-berechnet zusammenfassende Statistiken für verschiedene Faktoren (d.h. kategoriale Daten).
32. Nenne und definiere die Kontrollanweisungen in R.
In R gibt es drei Gruppen von Steueranweisungen: bedingte Anweisungen, Schleifenanweisungen und Sprunganweisungen.
Bedingte Anweisungen:
if
-prüft, ob eine gegebene Bedingung wahr ist und bietet Operationen an, die ausgeführt werden, wenn dies der Fall ist.if-else
-prüft, ob eine gegebene Bedingung wahr ist, und bietet Operationen an, die ausgeführt werden, wenn dies der Fall ist, sowie eine weitere Reihe von Operationen, die im umgekehrten Fall ausgeführt werden.if... else if... else
-testet eine Reihe von Bedingungen nacheinander, bietet Operationen, die für jede Bedingung ausgeführt werden, wenn sie wahr ist, und eine Reihe von Fallback-Operationen, die ausgeführt werden, wenn keine dieser Bedingungen wahr ist.switch
-Wertet einen Ausdruck anhand der Elemente einer Liste aus und gibt einen Wert aus der Liste zurück, der auf den Ergebnissen dieser Auswertung basiert.
Schleifenanweisungen:
for
-in for-Schleifen über eine Sequenz iteriert.while
-Schleife prüft, ob eine vordefinierte logische Bedingung (oder mehrere logische Bedingungen) in der aktuellen Iteration erfüllt ist.repeat
-Wiederholungsschleifen führt dieselbe Reihe von Operationen so lange aus, bis eine vordefinierte Abbruchbedingung (oder mehrere Abbruchbedingungen) erfüllt ist.
Sprunganweisungen:
next
-Überspringt eine bestimmte Iteration einer Schleife und springt zur nächsten, wenn eine bestimmte Bedingung erfüllt ist.break
-Stop und verlässt die Schleife bei einer bestimmten Iteration, wenn eine bestimmte Bedingung erfüllt ist.return
-beendet eine Funktion und gibt das Ergebnis zurück.
33. Was sind reguläre Ausdrücke und wie arbeitest du mit ihnen in R?
Ein regulärer Ausdruck oder Regex (in R oder anderen Programmiersprachen) ist ein Zeichen oder eine Zeichenfolge, die ein bestimmtes Textmuster beschreibt und zum Mining von Textdaten verwendet wird. In R gibt es zwei Hauptmöglichkeiten, mit regulären Ausdrücken zu arbeiten:
- Verwendung der Basis R und ihrer Funktionen (z. B.
grep()
,regexpr()
,gsub()
,regmatches()
, usw.), um Regex zu finden, abzugleichen, zu extrahieren und zu ersetzen. - Ein spezielles stringr-Paket aus der tidyverse-Sammlung verwenden. Dies ist ein bequemerer Weg, um mit R-Regex zu arbeiten, da die Funktionen von stringr viel intuitivere Namen und Syntax haben und eine umfangreichere Funktionalität bieten.
Ein Leitfaden für reguläre Ausdrücke in R enthält weitere Details über die Arbeit mit Regex in R.
34. Welche Pakete werden für maschinelles Lernen in R verwendet?
- caret fürverschiedene Klassifizierungs- und Regressionsalgorithmen.
- e1071-fürSupport Vector Machines (SVM), Naive Bayes Classifier, Bagged Clustering, Fuzzy Clustering und K-Nearest Neighbors (KNN).
- kernlab - stelltkernelbasierte Methoden für Klassifizierungs-, Regressions- und Clustering-Algorithmen bereit.
- randomForest - fürRandom-Forest-Klassifizierungs- und Regressionsalgorithmen.
- xgboost - fürGradient Boosting, lineare Regression und Entscheidungsbaum-Algorithmen.
- rpart - fürrekursive Partitionierung in Klassifikations-, Regressions- und Überlebensbäumen.
- glmnet - fürLasso- und Elastic-Net-Regularisierungsmethoden, die auf lineare Regression, logistische Regression und multinomiale Regressionsalgorithmen angewendet werden.
- nnet fürneuronale Netze und multinomiale log-lineare Algorithmen.
- tensorflow - dieR-Schnittstelle zu TensorFlow, für tiefe neuronale Netze und numerische Berechnungen mit Datenflussgraphen.
- Keras - dieR-Schnittstelle zu Keras, für tiefe neuronale Netze.
35. Wie wählt man Features für maschinelles Lernen in R aus?
Betrachten wir drei verschiedene Ansätze und wie man sie im Caret-Paket implementiert.
- Durch das Erkennen und Entfernen hoch korrelierter Merkmale aus dem Datensatz.
Wir müssen eine Korrelationsmatrix aller Merkmale erstellen und dann die hoch korrelierten Merkmale identifizieren, in der Regel diejenigen mit einem Korrelationskoeffizienten von mehr als 0,75:
corr_matrix <- cor(features)
highly_correlated <- findCorrelation(corr_matrix, cutoff=0.75)
print(highly_correlated)
- Indem du die Merkmale des Datenrahmens nach ihrer Wichtigkeit ordnest.
Wir müssen ein Trainingsschema erstellen, um die Parameter für das Training zu kontrollieren, es verwenden, um ein ausgewähltes Modell zu erstellen, und dann die Variablenbedeutung für dieses Modell schätzen:
control <- trainControl(method="repeatedcv", number=10, repeats=5)
model <- train(response_variable~., data=df, method="lvq", preProcess="scale", trControl=control)
importance <- varImp(model)
print(importance)
- Durch die automatische Auswahl der optimalen Merkmale.
Eine der beliebtesten Methoden, die caret für die automatische Auswahl der optimalen Merkmale anbietet, ist ein rückwärtsgerichteter Auswahlalgorithmus namens Recursive Feature Elimination (RFE).
Wir müssen die Kontrolle mit einer ausgewählten Resampling-Methode und einer vordefinierten Liste von Funktionen berechnen, den RFE-Algorithmus anwenden, ihm die Merkmale, die Zielvariable, die Anzahl der zu behaltenden Merkmale und die Kontrolle übergeben und dann die ausgewählten Prädiktoren extrahieren:
control <- rfeControl(functions=caretFuncs, method="cv", number=10)
results <- rfe(features, target_variable, sizes=c(1:8), rfeControl=control)
print(predictors(results))
Wenn du deine Kenntnisse über maschinelles Lernen in R vertiefen willst, findest du hier eine solide und umfassende Ressource: Machine Learning Scientist mit R.
36. Was sind Korrelation und Kovarianz und wie kannst du sie in R berechnen?
Die Korrelation ist ein Maß für die Stärke und Richtung der linearen Beziehungen zwischen zwei Variablen. Er nimmt Werte von -1 (eine perfekte negative Korrelation) bis 1 (eine perfekte positive Korrelation) an. Die Kovarianz ist ein Maß dafür, wie stark sich zwei Variablen im Verhältnis zueinander verändern und in welche Richtung die linearen Beziehungen zwischen ihnen gehen. Anders als bei der Korrelation gibt es bei der Kovarianz keine Bereichsgrenze.
Um die Korrelation zu berechnen, müssen wir in R die Funktion cor()
verwenden, um die Kovarianz zu berechnen die Funktion cov()
. Die Syntax beider Funktionen ist identisch: Wir müssen zwei Variablen (Vektoren) übergeben, für die wir das Maß berechnen wollen (z. B. cor(vector_1, vector_2)
oder cov(vector_1, vector_2)
), oder den gesamten Datenrahmen, wenn wir die Korrelation oder Kovarianz zwischen allen Variablen dieses Datenrahmens berechnen wollen (z. B. cor(df) or cov(df)
). Bei zwei Vektoren ist das Ergebnis ein einzelner Wert, bei einem Datenrahmen ist das Ergebnis eine Korrelations- (oder Kovarianz-) Matrix.
37. Nenne und definiere die verschiedenen Ansätze zur Schätzung der Modellgenauigkeit in R.
Im Folgenden findest du verschiedene Ansätze und wie du sie im Caret-Paket von R implementierst.
- Datensplitting - dergesamte Datensatz wird in einen Trainingsdatensatz und einen Testdatensatz aufgeteilt. Die erste wird verwendet, um das Modell anzupassen, die zweite, um seine Leistung an ungesehenen Daten zu testen. Dieser Ansatz funktioniert besonders gut bei großen Daten. Um die Datenaufteilung in R zu implementieren, müssen wir die Funktion
createDataPartition()
verwenden und den Parameter p auf den erforderlichen Anteil der Daten setzen, die zum Training verwendet werden. - Bootstrap-Resampling: Entnahme vonZufallsstichproben aus dem Datensatz und Schätzung des Modells anhand dieser Stichproben. Solche Resampling-Iterationen werden viele Male und mit Ersatz durchgeführt. Um Bootstrap-Resampling in R zu implementieren, müssen wir den Parameter
method
der FunktiontrainControl()
auf"boot"
setzen, wenn wir die Trainingskontrolle des Modells definieren. - Kreuzvalidierungsmethoden
- k-fache Kreuzvalidierung - Der Datensatz wird in k Teilmengen aufgeteilt. Das Modell wird auf k-1 Teilmengen trainiert und auf den verbleibenden Teilmengen getestet. Der gleiche Prozess wird für alle Teilmengen wiederholt und dann wird die endgültige Modellgenauigkeit geschätzt.
- Wiederholte k-fache Kreuzvalidierung - Das Prinzip ist das gleiche wie bei der k-fachen Kreuzvalidierung, nur dass der Datensatz mehr als einmal in k-Teilmengen aufgeteilt wird. Für jede Wiederholung wird die Modellgenauigkeit geschätzt und dann die endgültige Modellgenauigkeit als Durchschnitt der Modellgenauigkeitswerte für alle Wiederholungen berechnet.
- Leave-One-Out-Cross-Validation (LOOCV) - eine Datenbeobachtung wird beiseite gelegt und das Modell wird auf allen anderen Datenbeobachtungen trainiert. Der gleiche Vorgang wird für alle Datenbeobachtungen wiederholt.
Um diese Kreuzvalidierungsmethoden in R zu implementieren, müssen wir den Parameter method
der Funktion trainControl()
auf "cv"
, "repeatedcv"
bzw. "LOOCV"
setzen, wenn wir die Trainingskontrolle des Modells definieren.
38. Was ist der Chi-Quadrat-Test und wie führst du ihn in R durch?
Der statistische Hypothesentest nach dem Chi-Quadrat-Prinzip ist ein Verfahren, mit dem festgestellt werden kann, ob zwei kategoriale Variablen unabhängig voneinander sind oder ob eine Korrelation zwischen ihnen besteht. Um den Chi-Quadrat-Test in R durchzuführen, müssen wir die Funktion chisq.test()
des Pakets stats verwenden. Die Schritte sind wie folgt:
1. Erstelle eine Kontingenztabelle mit den kategorialen Variablen, die dich interessieren, indem du die Funktion table()
der R-Basis verwendest:
table = table(df["var_1"], df["var_2"])
2. Gib die Kontingenztabelle an die Funktion chisq.test()
weiter:
chisq.test(table)
In unserem Kurs Hypothesentests in R frischst du dein Wissen über Chi-Quadrat-Tests und andere Hypothesentests auf.
39. Was ist Shiny in R?
Shiny ist ein Open-Source-R-Paket, mit dem du schnell und einfach interaktive Webanwendungen und Webseiten für die Datenwissenschaft erstellen kannst, und zwar nur mit R und ohne HTML-, CSS- oder JavaScript-Kenntnisse. Shiny in R bietet zahlreiche grundlegende und fortgeschrittene Funktionen, Widgets, Layouts, Web-App-Beispiele und den zugrundeliegenden Code, auf denen du aufbauen und die du anpassen kannst, sowie Anwenderbeispiele aus verschiedenen Bereichen (Technologie, Sport, Bankwesen, Bildung usw.), die von der Shiny-App-Entwicklergemeinschaft gesammelt und kategorisiert wurden.
40. Was ist der Unterschied zwischen dem with()
und within()
Funktionen?
Die Funktion with()
wertet einen R-Ausdruck auf einer oder mehreren Variablen eines Datenrahmens aus und gibt das Ergebnis aus , ohne den Datenrahmen zu verändern. Die Funktion within()
wertet einen R-Ausdruck für eine oder mehrere Variablen eines Datenrahmens aus, verändert den Datenrahmen und gibt das Ergebnis aus. Im Folgenden sehen wir, wie diese Funktionen funktionieren, indem wir einen Beispieldatenrahmen als Beispiel verwenden:
df <- data.frame(a = c(1, 2, 3), b = c(10, 20, 30))
print(df)
with(df, a * b)
print(within(df, c <- a * b))
Ausgabe:
a b
1 1 10
2 2 20
3 3 30
10 40 90
a b c
1 1 10 10
2 2 20 40
3 3 30 90
Wenn wir die Funktion within()
verwenden, müssen wir, um die Änderungen zu speichern, die Ausgabe der Funktion einer Variablen zuweisen.
Fazit
Abschließend haben wir uns in diesem Artikel die 40 häufigsten Fragen im Vorstellungsgespräch zur R-Programmierung angesehen und herausgefunden, welche Antworten auf die einzelnen Fragen erwartet werden. Mit diesen Informationen fühlst du dich hoffentlich selbstbewusster und bereit für ein erfolgreiches R-Vorstellungsgespräch, egal ob du einen Job in R suchst oder der richtige Kandidat für eine offene Stelle in deinem Unternehmen bist.
Um praktische Erfahrungen mit dem Beantworten von Fragen zu sammeln, schau dir unseren Kurs Practicing Statistics Interview Questions in R an.
Beginne deine R-Reise heute!
Track
Associate Data Scientist
Course