我在数据框中有一列,其中包含股票代码,例如 AAPL(对于 Apple)、TWTR(对于 Twitter)等等。我想根据数据框中的股票代码数量创建新列,并用将从 API 检索的收盘价填充这些列。结果应如下所示:单击此处查看预期输出
但是,当我运行下面的代码时,它会显示警告和错误,因为列之间的行数不同。有没有人可以解决这个问题?
library(Quandl)
portfolio <- data.frame(Code=c("AAPL", "TWTR", "MSFT"),
stringsAsFactors=FALSE)
analytic <- function(pf, startDate) {
z <- do.call(cbind.data.frame, lapply(seq(1:nrow(pf)), function(x) {
API <- Quandl(paste0("WIKI/", pf$Code[x]),
type = "raw",
start_date = startDate,
end_date=Sys.Date())
ValuebyDate <- API[,c("Date", "Close")]
return(ValuebyDate)
}))
return(z)
}
analytic(portfolio, "2016-01-01")