RStudio中对S&P500日收益数据执行Runs Test报错如何解决
RStudio运行游程检验(Runs Test)报错排查
运行代码报错基本是以下几个原因,按顺序排查即可:
- 未安装/加载对应函数所在的扩展包
runs.test()不是R原生自带的函数,来自tseries包(也有同名函数在randtests包,常用的是tseries版本),首次使用必须先安装、加载包,否则会提示找不到函数,执行以下命令完成安装加载:install.packages("tseries") library(tseries) - 代码参数未替换、存在语法错误
你贴的代码是通用示例,存在三个明显问题:- 占位符
x没有替换成你自己的待检验数据 alternative参数只需要传入"two.sided"/"less"/"greater"三个选项中的一个,把三个值全写进去会触发参数错误- 示例代码里的引号是中文全角的
“”,R只能识别英文半角引号""
- 占位符
- 传入的数据格式不符合要求
runs.test()要求第一个传入参数是数值型向量,不能直接把整个rdailyprice数据集(数据框格式)传进去,需要用数据集名$列名的格式,单独取出存储S&P500日收盘收益的那一列向量。
修正后的可直接运行代码(双侧检验场景):
# 已安装过tseries可跳过第一行 install.packages("tseries") library(tseries) # 把代码里的`日收益列名`替换成你rdailyprice里存收益率的实际列名即可 runs.test(rdailyprice$日收益列名, exact = FALSE, alternative = "two.sided")
常见报错对应快速定位:
- 提示
could not find function "runs.test":未加载/未安装tseries包 - 提示
object 'x' not found:未替换代码里的占位符x - 提示参数类型错误/非数值参数:检查是否传入了整个数据框、是否列名写错、是否用了中文引号
内容的提问来源于stack exchange,提问作者dion
相关产品推荐
相关产品推荐

