gpt4 book ai didi

R 如何将应用函数用于时间序列对象并将日期附加到特定列?

转载 作者:行者123 更新时间:2023-12-02 01:02:21 26 4
gpt4 key购买 nike

我有两个价格系列

require(quantmod)
require(TTR)

tickers = c("IBM","SPY")
getSymbols(tickers, from="2010-10-20", to="2014-09-22")
prices = do.call(merge, lapply(tickers, function(x) Cl(get(x))))

> head(prices)
IBM.Close SPY.Close
2010-10-20 139.07 117.87
2010-10-21 139.83 118.13
2010-10-22 139.67 118.35
2010-10-25 139.84 118.70
2010-10-26 140.67 118.72
2010-10-27 141.43 118.38

现在我想使用 TTR 包的 SMA 功能平滑系列。

sma.IMB = SMA(prices[,1])
sma.SPY = SMA(prices[,2])

sma.prices = cbind(sma.IBM, sma.SPY)

> head(sma.prices)
IBM.Close.SMA.3 SPY.Close.SMA.3
2010-10-20 NA NA
2010-10-21 NA NA
2010-10-22 139.5233 118.1167
2010-10-25 139.7800 118.3933
2010-10-26 140.0600 118.5900
2010-10-27 140.6467 118.6000

在处理很多 Assets 时,这是非常繁琐的,所以我想使用 apply 来缩短这个过程

sma.prices = apply(prices, 2, SMA)

> head(sma.prices)
IBM.Close SPY.Close
[1,] NA NA
[2,] NA NA
[3,] NA NA
[4,] NA NA
[5,] NA NA
[6,] NA NA

> sma.prices[9:11,]
IBM.Close SPY.Close
[1,] NA NA
[2,] 141.217 118.504
[3,] 141.727 118.712

如您所见,日期未附加到特定行,并且使用默认的 n=10 移动平均线进行计算。我的问题是如何将日期保存到动物园输出中。非常感谢。

最佳答案

试试这个:

sma.prices <- prices
sma.prices[] <- apply(prices, 2, SMA)

关于R 如何将应用函数用于时间序列对象并将日期附加到特定列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27202412/

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