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](https://i0.wp.com/statistik-dresden.de/wp-content/uploads/2015/12/Funktion-Variablenliste_Schipsel1.png?resize=558%2C219&ssl=1)
![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.](https://i0.wp.com/statistik-dresden.de/wp-content/uploads/2015/12/Funktion-Variablenliste_Schipsel2.png?resize=840%2C458&ssl=1)
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](https://i0.wp.com/statistik-dresden.de/wp-content/uploads/2015/12/235-R%C2%B2-Werte.png?resize=840%2C540&ssl=1)
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.