R语言用tidyquant计算股票对数收益率出现mutate嵌套列错误如何解决
错误原因
你调用tq_transmute()时mutate_fun参数的写法不符合tidyquant的语法规范:
mutate_fun仅需传入函数名本身,不需要附带括号和参数- 函数的相关参数要单独作为
tq_transmute()的参数传入,不能嵌套在mutate_fun的赋值语句中 - 原代码中
periodReturn(,留空的第一个参数本身也不符合R函数调用的语法要求
修正后的代码
仅需要修改计算对数收益率的代码段即可:
# 计算对数收益率 log_ret_tidy <- price_data %>% group_by(symbol) %>% tq_transmute(select = adjusted, mutate_fun = periodReturn, period = 'daily', col_rename = 'ret', type = 'log') head(log_ret_tidy)
效果说明
运行修正后的代码即可正常按股票分组计算每只股票的每日对数收益率,输出结果包含symbol(股票代码)、date(日期)、ret(对数收益率)三列数据,符合预期需求。
内容的提问来源于stack exchange,提问作者Priya Saivasan
相关产品推荐
相关产品推荐

