Angenommen, ich habe ein data.frame TLT deren Namen letzte Zeile ist dies:Welche R-Funktion sendet Ausgabe an einen neuen Vektor?
TLT.Open TLT.Close
2010-12-14 92.4 92.14
Und ich möchte, genannt TLT.BarColor einen zusätzlichen Vektor hinzuzufügen, so dass es wie folgt aussieht:
TLT.Open TLT.Close TLT.BarColor
2010-12-14 92.4 92.14 "Green"
Hier ist eine Funktion, die "druckt", ob es ein grüner oder roter Bar-Tag war.
bar_color <- function(ticker) {
require("quantmod")
x <- getSymbols(ticker, auto.assign=FALSE)
open <- x[,1]
close <- x[,2]
last_open <- tail(open, n=1)
last_close <- tail(close, n=1)
if (last_open > last_close)
{print("Red Bar")}
else if (last_open < last_close)
{print("Green Bar")}
else {print("Doji Bar")}
Statt den Druck der Verwendung von() R-Funktion (die nur Abzüge zu trösten), was R-Funktion würden Sie einen neuen Vektor zu füllen, um die Ausgabe zu senden?
super_dataframe <- cbind(TLT, apply(TLT, 1, valid_function))
Die Beispielfunktion funktioniert in dieser Lösung nicht. Aber wenn die Funktion gültig wäre, könnte ihre Ausgabe auf diese Weise angehängt werden.
Was ist das Endziel hier? Versuchst du etwas zu planen? Warum müssen Sie einen neuen Vektor füllen? – Chase
siehe '? Return()' –
@Chase Ich versuchte, mein Endziel zu verallgemeinern, um die Frage zu vereinfachen, aber ich baue ein Handelsmodell, wo der Preis vier Regionen belegen kann, zwei eindeutig und die anderen zweideutig. Die zwei mehrdeutigen Regionen werden basierend auf dem, was das Modell gestern signalisierte, aufgelöst. Wenn 1, dann ist pos = lang. Wenn 4, dann ist pos = kurz. Wenn 2 || 3, dann pos = pos [-1]. Ersetzen Sie die Strichfarbe im Beispiel durch einen Pos (Position) -Vektor, der basierend auf einem Algorithmus, der komplexer als der Barcolor-Algorithmus ist, gefüllt wird. – Milktrader