R Anwendungsbeispiel mit Video: R-Funktionen auf Variablenliste anwenden

Wie kann man R-Funktionen auf eine lange Variablenliste anwenden, ohne jeden einzelnen Variablennamen eintippen zu müssen? Das wird am Beispiel eines Datensatzes mit 235 NIR-Wellenlängen (NIR = near infrared spectroscopy) gezeigt. Dazu werden 235 einfache lineare Regressionsmodelle mit jeweils einer unabhängigen (und einer abhängigen) Variable aufgestellt, um dann die R²-Werte grafisch zu vergleichen.

Es wird gezeigt, wie man eine benutzerdefinierte Funktion schreibt, um R² einfach aus dem Regressionsmodell abzurufen. Die Schleife, die die 235 Wellenlängen abarbeitet, verwendet die Funktionen lapply sowie substitute. Mit einer weiteren Schleife (for) werden die R²-Werte in einen Vektor übertragen und anschließend mit ggplot grafisch dargestellt.

Ich verwende R-Studio. Die hier verwendeten Daten sind im R-Paket chemometrics enthalten.

Hier einige Codeschnipsel:

chemometrics: Datenaufbereitung
Aufbereitung der Daten aus dem chemometrics-Paket


Hier werden 235 lineare Einfachregressionen erstellt und in einer Liste gesammelt. Die R²-Werte werden in einen Vektor geschrieben und anschließend mit ggplot visualisiert. Die wichtigsten Funktionen sind lapply für die Liste mit den 235 Modellen sowie substitute, um die Variablennamen in die Modellgleichung einzufügen.
Klicken, um die Abbildung zu vergrößern.
Hier werden 235 lineare Einfachregressionen erstellt und in einer Liste gesammelt. Die R²-Werte werden in einen Vektor geschrieben und anschließend mit ggplot visualisiert.
Die wichtigsten Funktionen sind lapply für die Liste mit den 235 Modellen sowie substitute, um die Variablennamen in die Modellgleichung einzufügen.

So sieht die abschließende Visualisierung der 235 R²-Werte aus:

235-R²-Werte
Visualisierung der 235 R²-Werte. Auf der x-Achse sind die Wellenlängen der NIR-Spektroskopie von 1115nm bis 2285nm dargestellt, die y-Achse bildet R² ab.

Man erkennt ein wellenförmiges Muster: Bestimmte Wellenlängen korrespondieren deutlich mit der Glukose-Konzentration, andere gar nicht.

Sie benötigen eine R-Schulung für sich oder Ihre Mitarbeiter oder Unterstützung bei einem R-Projekt? Sprechen Sie mich an.


Freue mich über Kommentare!