quantmod <- 在没有 headers 的情况下编写提取单日 returns 的公式时遇到问题
quantmod <- Having trouble writing a formula to extract single day returns without headers
我正在尝试编写一个公式,该公式将 return 股票单日 return,但我相信我在处理 periodReturn
[=16= 的数据类型时遇到了问题]场
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
>
提前感谢您的任何建议!
您的 dayReturn
函数中存在一些语法错误。
以下是从您的函数内部提取的可重现代码,可以运行:
library(quantmod)
getSymbols("MSFT")
ticker <- c(MSFT)
date <- c("20161010")
dayreturn <- periodReturn(ticker,period='daily',subset = paste0(date,"::",date,"'"))
你的错误:
date
想成为一个字符串,而不是数字。
- 您想要子集化的日期字符串不正确。你想在
periodReturn
中使用 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.001398811
我正在尝试编写一个公式,该公式将 return 股票单日 return,但我相信我在处理 periodReturn
[=16= 的数据类型时遇到了问题]场
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
>
提前感谢您的任何建议!
您的 dayReturn
函数中存在一些语法错误。
以下是从您的函数内部提取的可重现代码,可以运行:
library(quantmod)
getSymbols("MSFT")
ticker <- c(MSFT)
date <- c("20161010")
dayreturn <- periodReturn(ticker,period='daily',subset = paste0(date,"::",date,"'"))
你的错误:
date
想成为一个字符串,而不是数字。- 您想要子集化的日期字符串不正确。你想在
periodReturn
中使用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.001398811