【发布时间】:2011-05-26 05:38:45
【问题描述】:
假设我有一个名为 TLT 的 data.frame,它的最后一行是:
TLT.Open TLT.Close
2010-12-14 92.4 92.14
我想添加一个名为 TLT.BarColor 的额外向量,使其看起来像这样:
TLT.Open TLT.Close TLT.BarColor
2010-12-14 92.4 92.14 "Green"
这里有一个函数“打印”是绿色还是红色条形日。
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")}
不使用 print() R 函数(仅打印到控制台),您会使用什么 R 函数来发送输出以填充新向量?
super_dataframe <- cbind(TLT, apply(TLT, 1, valid_function))
示例函数在此解决方案中不起作用。但是如果函数是有效的,它的输出可以以这种方式附加。
【问题讨论】:
-
这里的最终目标是什么?你想图谋什么吗?为什么需要填充新向量?
-
@Chase 我试图概括我的最终目标以简化问题,但我正在建立一个交易模型,其中价格可以占据四个区域,两个明确,另外两个不明确。这两个模棱两可的区域是根据模型昨天发出的信号来解决的。如果为 1,则 pos = long。如果为 4,则 pos = 短。如果 2 || 3,则 pos = pos[-1]。将示例中的 barcolor 替换为基于比 barcolor 算法更复杂的算法填充的 pos(位置)向量。