gpt4 book ai didi

r - 用XTS上的Apply系列功能替换for循环

转载 作者:行者123 更新时间:2023-12-04 23:53:04 26 4
gpt4 key购买 nike

嗨,我的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 

最佳答案

我相信在这种情况下,mapply是最简单的解决方案:

sym$TS<-mapply(getTickSize, sym$Mid, index(sym))


注意: *apply函数家族并不总是比简单的循环更好(关于这个问题的大多数神话可以追溯到S的早期版本)。

但是我承认它看起来更性感。

关于r - 用XTS上的Apply系列功能替换for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7749790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com