Supposons que j'ai un data.frame nommé TLT dont la dernière ligne est la suivante:Quelle fonction R envoie la sortie à un nouveau vecteur?
TLT.Open TLT.Close
2010-12-14 92.4 92.14
Et je veux ajouter un vecteur supplémentaire appelé TLT.BarColor il ressemble à ceci:
TLT.Open TLT.Close TLT.BarColor
2010-12-14 92.4 92.14 "Green"
ici est une fonction qui "imprime" s'il s'agit d'un jour de barre verte ou rouge.
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")}
Au lieu d'utiliser l'impression() fonction R (qui imprime uniquement à la console), quelle fonction R-vous utiliser pour envoyer la sortie pour alimenter un nouveau vecteur?
super_dataframe <- cbind(TLT, apply(TLT, 1, valid_function))
La fonction exemple ne fonctionne pas dans cette solution. Mais si la fonction était valide, sa sortie pourrait être attachée de cette manière.
Quel est l'objectif final ici? Es-tu en train d'essayer de tracer quelque chose? Pourquoi avez-vous besoin de peupler un nouveau vecteur? – Chase
voir '? Return()' –
@Chase J'essayais de généraliser mon objectif final pour simplifier la question, mais je construis un modèle de trading où le prix peut occuper quatre régions, deux sans ambiguïté et les deux autres ambiguës. Les deux régions ambiguës sont résolues en fonction de ce que le modèle indiquait hier. Si 1, alors pos = long. Si 4, alors pos = court. Si 2 || 3, puis pos = pos [-1]. Remplacez la barre de couleur dans l'exemple par le vecteur pos (position) qui est basé sur un algorithme plus complexe que l'algo barcolor. – Milktrader