checkData(数据)出错:仅允许数字数据

问题描述 投票:0回答:1

我试图从cpt.mean运行changepoint package函数。首次尝试在我的数据框架df2上运行它后,它给了我一个错误:

我的数据框df2看起来像这样:

    date     amount
2012-07-01   0.0000000
2012-08-01   1.1111111
2012-09-01   0.2985075
2012-10-01   0.5141388
2012-11-01   0.0000000
2012-12-01   0.0000000
2013-01-01   0.6849315
2013-02-01   1.9762846
2013-03-01   1.1799410
2013-04-01   0.2881844
2013-05-01   0.2617801
2013-06-01   1.2285012

我的代码:

df2 <- data.frame(df1$date,df1$amount))
df2.pelt <- cpt.mean(df2, method="PELT")

checkData(数据)出错:仅允许数字数据

所以我这样做了:

df2 <- data.frame(as.numeric(df2$date),as.numeric(df2$amount))

我的新数据框如下所示:

 date        amount
15522      0.0000000
15553      1.1111111
15584      0.2985075
15614      0.5141388
15645      0.0000000
15675      0.0000000
15706      0.6849315
15737      1.9762846
15765      1.1799410
15796      0.2881844
15826      0.2617801
15857      1.2285012

我尝试再次运行我的cpt.mean函数,出现同样的错误。然后我看到我的列是什么类的:

> class(df2$date.)
[1] "numeric"
> class(df2$amount.)
[1] "numeric"

两次我得到“数字”作为结果,但cpt.means仍然没有运行。

我错过了什么?有什么建议?

谢谢

r numeric error-code
1个回答
0
投票

documentation,它突出了data功能:

数据

包含要在其中查找变更点的数据的矢量,ts对象或矩阵。如果数据是矩阵,则每行被视为单独的数据集。

因此,正如它所说,您的数据应该是矢量,矩阵或时间序列对象。

但如果你运行class(df2)它会给你一个data.frame

以下是使用向量运行此函数的一小部分示例:

library(changepoint)    
x=c(rnorm(100,0,1),rnorm(100,10,1))
cpt.mean(x,penalty="SIC",method="AMOC",class=FALSE) 
© www.soinside.com 2019 - 2024. All rights reserved.