Hallo Zusammen,
ich habe ein Data Frame "DATA" bestehend aus 100 Zeilen und 3 Spalten.
Ich habe eine Funktion "Fct.R" welche als Eingangsgröße den Wert aus Spalte 2 braucht und dann den Wert für Spalte 3 berechnet.
Nun möchte ich die Funktion auf alle 100 Zeilen anwenden ohne eine for-Schleife zu benutzen. Irgendwie müsste das mit apply gehen, aber ich weiß ehrlich gesgt nicht wie...
Kann mir jemand helfen?
Viele Grüße
A346
Eigene Funktion auf Spalten eines Data Frames anwenden
Re: Eigene Funktion auf Spalten eines Data Frames anwenden
Hallo,
da gibt es nicht die eine, sondern viele mögliche Antworten und es kommt auf den genauen Fall an. Eine Möglichkeit ist die Funktion apply mit MAR = 1. Die gibt der Funktion immer einen Vektor mit den Werten je einer Zeile des Data.frames mit. Dabei kann es zu Typumwandlungen kommen wie im folgenden Beispiel:
In diesem konkreten Fall könnte man es viel einfacher haben mit
aber das klappt halt nicht immer.
Ansonsten sind auch for-Schleifen nicht per se schlecht.
LG,
Bernhard
da gibt es nicht die eine, sondern viele mögliche Antworten und es kommt auf den genauen Fall an. Eine Möglichkeit ist die Funktion apply mit MAR = 1. Die gibt der Funktion immer einen Vektor mit den Werten je einer Zeile des Data.frames mit. Dabei kann es zu Typumwandlungen kommen wie im folgenden Beispiel:
Code: Alles auswählen
twice <- function(x) as.numeric(x[2]) * 2
bsp <- data.frame(a = LETTERS[1:10],
b = 1:10,
c = runif(10))
apply(bsp, 1, twice)
Code: Alles auswählen
bsp <- data.frame(a = LETTERS[1:10],
b = 1:10,
c = runif(10))
2 * bsp$b
Ansonsten sind auch for-Schleifen nicht per se schlecht.
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte