我的xts结构是:
head(sym)
BidSize Bid Ask AskSize Quantity Mid
2006-01-04 09:01:00 3771 181000 182000 5783 15625 181500
2006-01-04 09:02:00 3952 181000 182000 5659 180 181500
2006-01-04 09:03:00 3556 181000 182000 5943 1059 181500
2006-01-04 09:04:00 3747 181000 182000 6133 261 181500
2006-01-04 09:05:00 3957 181000 182000 6077 101 181500
2006-01-04 09:06:00 3898 181000 182000 6511 311 181500
我有一个函数getTickSize(x,date)
,它是为x设计的单个数字(不是数组)。
我希望尽可能通过对应用函数系列的“智能”调用来替换以下for循环
for (i in 1:nrow(sym[1:10])){
sym$TS[i] <- getTickSize(sym$Mid[i],index(sym)[i])
}
任何指针?我的所有尝试都遇到了以下警告:
the condition has length > 1 and only the first element will be used
答案 0 :(得分:1)
我相信在这种情况下,mapply
是最简单的解决方案:
sym$TS<-mapply(getTickSize, sym$Mid, index(sym))
注意:*apply
系列函数并不总是比一个简单的循环更好(大多数关于那个日期的神话回到早期版本的S)。
但我承认它看起来更性感。