- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经弄乱了一段时间。我最近开始使用 quantmod 包对股票价格进行分析。
我有一个代码向量,如下所示:
> 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 调用中保存向量代码中每只股票的价格。它有以下代码:
myX <- function(tickers, start, end) {
require(quantmod)
getSymbols(tickers, from=start, to=end)
}
我自己调用lapply
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"
这很好用。现在我想将每只股票的收盘价合并到一个对象中,如下所示
# 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
有人建议我尝试以下操作:
ClosePrices <- do.call(merge, lapply(tickers, function(x) Cl(get(x))))
但是我尝试了各种组合,但都没有成功。首先我试着用 Cl(x) 调用 lapply
>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
调用完全没有必要/多余。
我原来答案中的代码有效。为什么要尝试其他组合?
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
关于r - getSymbols 并使用 lapply、Cl 和 merge 提取收盘价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5574595/
我正在尝试从许多格式不整洁的 excel 电子表格中提取一些数据。我想我需要在 lapply 内运行 lapply,但似乎无法使其工作。这是一个例子: 这是两个数据框,其格式与我在 excel 表中找
显然,我仍然不完全理解 lapply 到底是如何工作的。当然,它对列表元素应用一个函数并返回一个列表。然而,当将它与自定义函数一起使用时,我不太确定如何有效地使用它。例如,我想在使用 dcast 的自
我创建了一个名为“列表”的数据框列表,并且只想选择列表中每个数据集的某些列。 library(dplyr) new_list <- lapply(list, select(list, Date)) 它
我想使用 lapply 同时运行四个多级模型(使用 lmer)。 将 lm() 与一个因变量和一组自变量一起使用的简单示例是: data(mtcars) varlist <- names(mtcars
我编写了一个函数,可以将字符输入转换为数字输出。 votedIndicated votedIndicated("V") [1] 1 > votedIndicated("D") [1] 0 但是,当我
简介 我一直在编写一个程序来处理一些原始数据,然后通过几个统计过程来传递它。总而言之,它使用了多个“lapply”实例。 例如 :在脚本的一部分中,我使用了一个称为 Maxstat 的函数(请注意,该
我有一个 list l ,具有以下特点: 它有 3 个元素 每个元素都是一个长度为 5 的数值向量 每个向量包含从 1 到 5 的数字 l = list(a = c(2, 3, 1, 5, 1), b
我有一个功能列表 functions flist arg arg [1] 6.123234e-17 > Funcall ## Compute log(exp(acos(cos(0)) > Re
我有一个字符向量中的 url 列表,我想暂停之间的过程 查询,因为如果不是 x 查询被拒绝。 urls=c('url1','url2','url3') 这是我想做的事 htmlpages=lapply
我有一个具有以下结构的 6 个列表,我正在尝试提取特定元素并将它们存储在数据 data.frame 中。 我已经应用了这个, lapply(rmseErrorsHyperparameters, '[[
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我正在阅读 Wickham 的 Advanced R 书。此问题与解决第 12 章 - 泛函中的问题 5 有关。该练习要求我们: Implement a version of lapply() tha
有没有办法使用lapply()以某种方式强制它在单步执行列表的下一个元素之前等待用户的“输入”?如果是这样,你能提供一个简单的例子吗? 最佳答案 这是示例: es <- list(1, 2, 3) l
我有一个我想摆脱的循环,但我也不太明白怎么做。假设我有一个数据框: tmp = data.frame(Gender = rep(c("Male", "Female"), each = 6),
我已经生成了一个模型列表,并想创建一个汇总表。 例如,这里有两个模型: x <- seq(1:10) y <- sin(x)^2 model1 <- lm(y ~ x) model2 <- lm(y
我在对数据帧列表运行稳健的线性回归模型(使用 MASS 库中的 rlm)时遇到问题。 可重现的示例: var1 <- c(1:100) var2 <- var1*var1 df1 <- data.f
我正在清理一组文本文件,目前将它们作为具有相同结构的数据框列表进行操作。 鉴于文本文件的结构,每个 df 中最终都会有一个不规则的单元格。该单元格包含一个包含列名和值的字符串。我需要提取该值并将其分配
我有一个包含字符数据的 data.frame,我希望最终得到一个具有相同列标题但每个值都有计数的矩阵。到目前为止,我可以获得一个我想要的维度的空矩阵,但是当我尝试用计数填充 myMatrix 时,它不
如何在 lapply 中指定多行语法。我的语法也没有替换第一行中的 text_query。提前谢谢你。 text_query<-lapply(text_query, function(x) { g
您可以通过运行重置数据框中的行名 >rownames(df) newlist <- llply(mylist, function(df) { rownames(df) <- NULL }) 但 tit
我是一名优秀的程序员,十分优秀!