【问题标题】:Why am I getting an error with TTR rollSFM loading a CSV file为什么在 TTR rollSFM 加载 CSV 文件时出现错误
【发布时间】:2021-03-11 11:04:37
【问题描述】:

我正在尝试绘制滚动线性回归,但出现以下错误:

if (any(by nc)) stop("'by' must match numbers of columns") 中的错误: 需要 TRUE/FALSE 的缺失值

相关代码为:

library(TTR)

mydata <-read.csv("EURUSD2.csv", sep=",",header=TRUE)
gh<-as.matrix(mydata)
reg <- rollSFM(mydata[, "PRICE"], 1:nrow(mydata), n=5)

这是 CSV 文件的示例:

BAR,PRICE,HIGH,LOW
0,113.3035,113.306,113.282
1,113.306,113.311,113.296
2,113.306,113.312,113.302
3,113.297,113.308,113.297
4,113.2875,113.304,113.285
5,113.2975,113.298,113.29
6,113.278,113.303,113.278
7,113.2915,113.294,113.28
8,113.3,113.3,113.284
9,113.298,113.302,113.296
10,113.3195,113.32,113.3
11,113.3275,113.336,113.32

为什么它不接受这些数据?

【问题讨论】:

  • 你想用reg &lt;- rollSFM(mydata[, "PRICE"], 1:nrow(mydata), n=5)做什么?您共享的数据的预期输出是什么?
  • 我只是想提取线性回归的拟合值,所以我会这样做:rma &lt;- reg$alpha + reg$beta*1:nrow(mydata)

标签: r linear-regression ttr


【解决方案1】:

我想通了。您只需为数据提供自己的索引。例如:

xts1 <- xts(mydata[, "PRICE"], order.by=Sys.Date()+1:length(mydata[, "BAR"]))
reg <- rollSFM(xts1, .index(xts1), 2)
rma <- reg$alpha + reg$beta*.index(xts1)

【讨论】:

    猜你喜欢
    • 2022-07-25
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2019-07-02
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多