TSclust包的SAX功能会产生错误

时间:2015-10-10 10:47:39

标签: r time-series tsclust

我正在使用TSclust包进行SAX(符号聚合聚合)图。根据{{​​3}}上显示的示例,我正在使用函数

SAX.plot(as.ts(df$power), w=30, alpha=4) 

但是,它会产生错误:

Error in if ((n <- as.integer(n[1L])) > 0) { : argument is of length zero

我无法调试它。甚至我查看了SAX.plot函数的源代码,但是我没有找到输入的相关错误消息。

可以在page 25

找到所需的R数据对象

R版本:3.2
TSclust版本:1.2.3

1 个答案:

答案 0 :(得分:2)

你好,显然是因为你需要规范化你的数据,看看这个例子:

# Parameters
w <- 30 
alpha <- 4 

# PAA
x <- df$power
paax <- PAA(x, w) 
plot(x, type="l", main="PAA reduction of series x") 
p <- rep(paax,each=length(x)/length(paax)) #just for plotting the PAA
lines(p, col="red")

# SAX
convert.to.SAX.symbol(paax , alpha)
# [1] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
# You need to scale PAA result
convert.to.SAX.symbol(scale(paax) , alpha)
# [1] 1 1 1 1 1 1 1 1 1 2 2 1 4 3 3 1 2 2 2 4 4 4 1 1 2 4 3 3 4 4


# SAX plot : with scaling this works
SAX.plot(as.ts(scale(df$power)), w=w, alpha=alpha) 

您可以在功能帮助页面中找到该示例。