问题描述
我有一个数据集,我想用 tq_get
计算股票 6 个月的回报(见下面的例子)
名为 top
的数据集
ticker 6month
AKO.A
BIG
BGFV
功能
library(tidyverse)
library(dplyr)
library(tidyquant)
library(riingo)
calculate <- function (x) {
(tq_get(x,get = "tiingo",from = yesterday,to = yesterday)$adjusted/tq_get(x,from = before,to = before)$adjusted)-1
}
top[2] <- lapply(top[1],function(x) calculate(x))
不幸的是,对于某些股票代码,当简单地使用 lapply
或 mutate
时,没有值会导致错误消息,因为结果向量比现有数据集更小(行数更少)。使用 try_catch
解决没有用。
我现在想通过检查包 is_supported_ticker()
提供的 riingo
是否有可用的代码来解决问题
calculate <- function (x) {
if (is_supported_ticker(x,type = "tiingo") == TRUE) {
(tq_get(x,to = before)$adjusted)-1
}
else {
NA
}
}
top[2] <- lapply(top[1],function(x) calculate(x))
但现在我收到错误消息 x ticker must be length 1,but is actually length 3
。
我认为这是基于这样一个事实,即我的数据集的整个第一列都用作 is_supported_ticker()
的输入,而不是逐行输入。我该如何解决这个问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)