我正在尝试使用RBLPAPI BDH创建列
StockMove <- function(ticker){
StockMove <- bdh("MSFT Equity", "Chg_Pct_1D", x$Date, x$Date)
colnames(ernmove) <- NULL
ernmove <- ernmove[,2]
}
但我一直收到错误
Error in eval(substitute(expr), envir, enclos) : expecting a single value
Called from: bdh_Impl(con, securities, fields, start.date, end.datee, options, overrides, verbose, identity)
x $ Date是历史日期的列,我正在尝试创建一个新列,并为该行中与x $ Date列对应的每一行拉取BDH数据。 。作为一个完整性检查,我使用Sys.Date()代替x $ Date输入,它可以正常工作。
感谢您的任何建议,这是我的第一个问题,所以对任何错误道歉。
答案 0 :(得分:1)
你说x $ Date是一列日期。 BDH需要开始日期和结束日期。我认为这就是错误告诉你的。你给它一个想要单个值的列。
我没有永远写过任何R,所以原谅我这是错误的:
startDate <- min(x$Date)
endDate <-max(x$Date)
bdh("MSFT Equity", "Chg_Pct_1D", startDate, endDate)
BDH不适合从预定的日期列表中检索数据。并不是一次只有一个日期,因为假日有空数据,除非你使用覆盖来填充它们。
相反,我总是从BDH开始到结束检索所有日期。如果我有一列我需要的特定日期,我会在结果中查找它们。