Mein Problem ist wie folgt:Wie führe ich eine Funktion für jede meiner Beobachtungen in R?
Ich habe einen Datensatz von 6000 Beobachtung mit Informationen von Kunden (jede Beobachtung ist eine Client-Information).
Ich optimiere eine bestimmte Funktion (in meinem Fall ist eine Profit-Funktion), um eine optimale für meine Variable von Interesse zu finden. Insbesondere suche ich nach dem optimalen Zinssatz, den ich anbieten sollte, um meine erwarteten Gewinne zu maximieren.
Ich habe keinen Zweifel über meine Funktion. Das Problem ist, dass ich nicht weiß, wie ich vorgehen sollte, um diese Funktion auf JEDE BEOBACHTUNG anzuwenden, um einen OPTIMALEN ZINSSATZ für JEDES VON MEINEN 6000 KUNDEN (oder Beobachtungen, wie Sie bevorzugen) zu erhalten.
Bis jetzt war es einfach, das EINZIGARTIGE Optimum zu finden (dasselbe für alle Klienten) für diese Variable, die meinen Profit maximieren würde (Dies ist das globale Maximum, das ich denke). Aber was ich wissen muss ist, wie ich vorgehen sollte, um mein Optimierungsproblem auf JEDE meiner 6000 Beobachtungen INDIVIDUELL anzuwenden, um den optimalen Zinssatz für jeden Kunden zu haben (das sind 6000 optimale Zinssätze, eins für jeden von ihnen).
Ich denke, ich sollte etwas ähnliches wie eine for-Schleife tun, aber meine Erfahrung in diesem Bereich ist begrenzt, und ich bin schon ziemlich frustriert. Außerdem habe ich versucht, mapply (myfunction, mydata) wie gewohnt zu verwenden, bekomme aber nur Fehlermeldungen. Diese
ist, wie mein (wirklich) jetzt einfacher Code wie folgt aussieht:
profits<- function(Rate)
sum((Amount*(Rate-1.2)/100)*
(1/(1+exp(0.600002438-0.140799335888812*
((Previous.Rate - Rate)+(Competition.Rate - Rate))))))
und die Ergebnisse für ONE optimal für die gesamte Stichprobe:
> optimise(profits, lower = 0, upper = 100, maximum = TRUE)
$maximum
[1] 6.644821
$objective
[1] 1347291
Also die Sache ist, wie kann ich umschreiben mein Code, um dies zu maximieren und das Optimum meiner Variable von Interesse für jede meiner Zeilen zu erhalten?
Ich hoffe, ich war klar! Vielen Dank im Voraus!
Es ist immer gut, ein [reproduzierbares Beispiel] einzuschließen (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610). Dies erleichtert es anderen, Ihnen zu helfen. – Jaap
Sie können 'apply (dataset, 1, FUN = function (obs) ...) verwenden.} Wenn das Dataset ein Datenframe ist, dann ist das Argument obs in der Funktion ein benannter Vektor. Überprüfen Sie, ob Sie alternativ 'with()' oder 'transform()' verwenden können. – jogo