我正在尝试编写一个公式,它将返回一天的股票,但我相信我在periodReturn subset字段的数据类型上有问题。
periodReturn(ticker,period='daily',subset='20161010::20161010') 工作,但
dayReturn <- function(ticker,date) {
ticker <- c(MSFT)
date <- c(20161010)
dayreturn <- periodReturn(ticker,period='daily',paste("subset='",date,"::",date,"'"))
dayreturn
}给出误差
dayReturn(msft,20161010)
daily.returns
Warning messages:
1: In as_numeric(YYYY) : NAs introduced by coercion
2: In as_numeric(MM) : NAs introduced by coercion
3: In as_numeric(DD) : NAs introduced by coercion
>提前感谢您的任何建议!
发布于 2016-12-13 23:27:44
在dayReturn函数中出现了一些语法错误。
下面是从函数内部提取的可重复代码,这些代码可以工作:
library(quantmod)
getSymbols("MSFT")
ticker <- c(MSFT)
date <- c("20161010")
dayreturn <- periodReturn(ticker,period='daily',subset = paste0(date,"::",date,"'"))你的错误:
date希望成为字符串,而不是数字数字。subset = "YYYYMMDD::YYYYMMDD"中使用subset = "YYYYMMDD::YYYYMMDD"或(subset = "YYYY-MM-DD::YYYY-MM-DD")。您的功能将更正确地工作如下:
dayReturn <- function(ticker, date1 , date2) {
dayreturn <- periodReturn(ticker,period='daily',subset = paste0(date1,"::",date2,"'"))
dayreturn
}
dayReturn(MSFT, "20161010", "20161012")
# daily.returns
# 2016-10-10 0.004152284
# 2016-10-11 -0.014645107
# 2016-10-12 -0.001398811https://stackoverflow.com/questions/41127840
复制相似问题