如何解决为什么将R中的rollapply函数应用于矢量时会返回矩阵?
我每天都有一点财务数据。类似于以下内容:
head(df)
tibble [2,871 x 2] (S3: tbl_df/tbl/data.frame)
Price | Volatility
15.4 17.5
14.7 17.8
14.4 17.7
14.9 17.8
... ...
我写了一个计算z分数的函数:
zscore <- function(x) {
z <- (x-mean(x))/sd(x)
return(z)
}
我想添加两列,一列用于计算每一行的z得分,另一列用于计算255个工作日(即大约1个日历年)内的滚动z得分
我编写了以下代码,返回了错误消息:
df %>%
mutate(full_zscore = zscore(Volatility),roll_zscore = rollapply(Volatility,255,FUN = zscore,align = "right"))
Error: Invalid index: out of bounds
在进一步调查中,我注意到rollapply函数返回了matrix
,因此为什么我会收到错误消息。
有人可以帮我理解为什么rollapply(df$Volatility,alighn = "right")
在新的变量列上返回矩阵而不是滚动的z分数吗?
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。