R语言自定义函数无输出问题求助:getQuote结果无法返回
问题分析与解决
在R语言中,直接执行代码能正常获取交易时间,但封装成自定义函数后调用却返回函数定义本身,核心原因是你的函数缺少返回结果的逻辑——R函数默认会返回函数体最后一行表达式的结果,若函数体未将目标结果作为最终执行的表达式,就会出现这种异常情况。
正确的函数写法示例
你需要确保函数体最终输出的是交易时间结果,两种可行写法如下:
写法1:利用R默认返回特性
依赖R的默认规则,将获取交易时间的表达式放在函数体最后一行,R会自动返回该结果:
trade_time <- function(ticker) { quantmod::getQuote(ticker)$'Trade Time' }
写法2:显式使用return语句
通过return()显式指定返回结果,逻辑更直观:
trade_time <- function(ticker) { trade_result <- quantmod::getQuote(ticker)$'Trade Time' return(trade_result) }
正确调用方式
调用时必须传入参数并加括号执行函数,直接引用函数对象会返回其定义:
# 正确调用,返回交易时间 trade_time(c("AAPL", "TSLA")) # 错误调用,返回函数定义本身 trade_time
总结:你的函数缺少的是将目标结果作为返回值的逻辑,要么让获取交易时间的表达式成为函数体最后一行,要么显式用return()返回结果,同时要保证调用时正确执行函数(加括号传参)。
内容的提问来源于stack exchange,提问作者Bubbles
相关产品推荐
相关产品推荐

