getSymbols并使用lapply,Cl和合并来提取收盘价

编程入门 行业动态 更新时间:2024-10-23 01:38:30
本文介绍了getSymbols并使用lapply,Cl和合并来提取收盘价的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我已经搞混了一段时间了.我最近开始使用Quantmod软件包对股票价格进行分析.

I've been messing around with this for some time. I recently started using the quantmod package to perform analytics on stock prices.

我有一个类似于以下内容的股票报价矢量:

I have a ticker vector that looks like the following:

> tickers [1] "SPY" "DIA" "IWM" "SMH" "OIH" "XLY" "XLP" "XLE" "XLI" "XLB" "XLK" "XLU" "XLV" [14] "QQQ" > str(tickers) chr [1:14] "SPY" "DIA" "IWM" "SMH" "OIH" "XLY" "XLP" "XLE" ...

我编写了一个名为myX的函数,该函数可用于lapply调用中,以节省矢量行情自动收录器中每只股票的价格.它具有以下代码:

I wrote a function called myX to use in a lapply call to save prices for every stock in the vector tickers. It has the following code:

myX <- function(tickers, start, end) { require(quantmod) getSymbols(tickers, from=start, to=end) }

我自己叫lapply

I call lapply by itself

图书馆(quantmod) lapply(tickers,myX,start ="2001-03-01",end ="2011-03-11")

library(quantmod) lapply(tickers,myX,start="2001-03-01", end="2011-03-11")

> lapply(tickers,myX,start="2001-03-01", end="2011-03-11") [[1]] [1] "SPY" [[2]] [1] "DIA" [[3]] [1] "IWM" [[4]] [1] "SMH" [[5]] [1] "OIH" [[6]] [1] "XLY" [[7]] [1] "XLP" [[8]] [1] "XLE" [[9]] [1] "XLI" [[10]] [1] "XLB" [[11]] [1] "XLK" [[12]] [1] "XLU" [[13]] [1] "XLV" [[14]] [1] "QQQ"

那很好.现在,我想将每个股票的收盘价合并到一个看起来像

That works fine. Now I want to merge the Close prices for every stock into an object that looks like

# BCSI.Close WBSN.Close NTAP.Close FFIV.Close SU.Close # 2011-01-03 30.50 20.36 57.41 134.33 38.82 # 2011-01-04 30.24 19.82 57.38 132.07 38.03 # 2011-01-05 31.36 19.90 57.87 137.29 38.40 # 2011-01-06 32.04 19.79 57.49 138.07 37.23 # 2011-01-07 31.95 19.77 57.20 138.35 37.30 # 2011-01-10 31.55 19.76 58.22 142.69 37.04

有人建议我尝试以下方法:

Someone recommended I try something like the following:

ClosePrices<-do.call(合并,lapply(股票行情,函数(x)Cl(get(x))))

ClosePrices <- do.call(merge, lapply(tickers, function(x) Cl(get(x))))

但是,我尝试了各种组合,但都没有成功.首先,我尝试仅用Cl(x)调用lapply

However I tried various combinations of this without any success. First I tried just calling lapply with Cl(x)

>lapply(tickers,myX,start="2001-03-01", end="2011-03-11") Cl(myX))) > lapply(tickers,myX,start="2001-03-01", end="2011-03-11") Cl(x))) Error: unexpected symbol in "lapply(tickers,myX,start="2001-03-01", end="2011-03-11") Cl" > > lapply(tickers,myX(x),start="2001-03-01", end="2011-03-11") Cl(x))) Error: unexpected symbol in "lapply(tickers,myX(x),start="2001-03-01", end="2011-03-11") Cl" > > lapply(tickers,myX(start="2001-03-01", end="2011-03-11") Cl(x) Error: unexpected symbol in "lapply(tickers,myX(start="2001-03-01", end="2011-03-11") Cl" > lapply(tickers,myX(start="2001-03-01", end="2011-03-11") Cl(x)) Error: unexpected symbol in "lapply(tickers,myX(start="2001-03-01", end="2011-03-11") Cl" >

任何指导将不胜感激.

推荐答案

正如我在R-help上的答复中所述,getSymbols是矢量化的,因此无需遍历tickers.您不需要myX函数,并且lapply调用是完全不必要的/多余的.

As I said in my reply on R-help, getSymbols is vectorized, so there's no need to loop over tickers. You don't need your myX function and the lapply call is completely unnecessary / redundant.

我原始答案中的代码有效.为什么要尝试其他组合?

The code in my original answer works. Why are you trying other combinations?

tickers <- c("SPY","DIA","IWM","SMH","OIH","XLY", "XLP","XLE","XLI","XLB","XLK","XLU") getSymbols(tickers, from="2001-03-01", to="2011-03-11") ClosePrices <- do.call(merge, lapply(tickers, function(x) Cl(get(x)))) head(ClosePrices) # SPY.Close DIA.Close IWM.Close SMH.Close OIH.Close XLY.Close # 2001-03-01 124.60 104.68 94.80 44.60 87.45 26.10 # 2001-03-02 123.61 104.80 95.05 45.34 91.20 26.30 # 2001-03-05 124.74 105.57 94.70 47.01 92.86 26.02 # 2001-03-06 126.08 106.15 96.10 49.59 94.34 26.68 # 2001-03-07 126.98 107.45 96.60 49.20 97.36 27.34 # 2001-03-08 127.12 108.61 95.80 49.20 97.59 27.78 # XLP.Close XLE.Close XLI.Close XLB.Close XLK.Close XLU.Close # 2001-03-01 26.39 32.10 29.28 21.14 28.80 31.62 # 2001-03-02 26.64 32.83 29.45 21.64 27.80 31.70 # 2001-03-05 26.54 33.01 29.82 22.03 28.40 31.64 # 2001-03-06 26.00 33.18 30.25 21.98 29.60 31.60 # 2001-03-07 25.83 33.89 30.61 22.63 29.64 31.45 # 2001-03-08 26.05 34.23 30.80 22.71 29.05 32.04

更多推荐

getSymbols并使用lapply,Cl和合并来提取收盘价

本文发布于:2023-10-25 22:00:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1528231.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:收盘价   getSymbols   lapply   Cl

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!