我应该在R中选择哪种DTW步骤模式?

时间:2015-12-08 00:36:08

标签: r

我有两个时间序列数据,我正在进行动态时间扭曲(DTW)分析。我用R中的“zoo”函数创建了这两个系列:ZooData:Zoon系列从1.93到547.211; ZooData2:动物园系列从1.207到2190.516。 ZooData2是我的参考系列,ZooData是我的测试系列。根据该论文:“不对称步骤模式将时间扩展限制为两倍;不可能将查询与参考完全对齐超过两倍。”所以,我不能使用step.pattern=asymmetric这里,我应该选择哪种步骤模式?该文件建议我选择Rabiner-Juang IV型:

alignment<-dtw(zooData,zooData2,step.pattern =rabinerJuangStepPattern(4,"c"))

但我在R中试过,它没有用:

Error in dtw(zooData, zooData2, step.pattern = rabinerJuangStepPattern(4,  : 
  No warping path exists that is allowed by costraints

任何人都可以帮助我吗?另外,我想做KNN分析,所以我想使用非对称步骤模式,而不是对称步骤模式。非常感谢你!

2 个答案:

答案 0 :(得分:1)

distance<-read.csv(file.choose(), head=T, row.names=1)

我是R的新手,在我发布这个问题之前,我知道函数read.csv,但我不知道如何编写路径,例如,如果我将文件放在桌面上,我该怎么办?从C://桌面读取它。然后我找到了代码file.choose(),您可以直接单击要导入的文件。

然后,我需要我的第一列也是变量名,这里是row.names的描述:

行名称向量。这可以是给出实际行名称的向量,或者是给出包含行名称的表的列的单个数字,或者是给出包含行名称的表列名称的字符串。

如果存在标题且第一行包含的字段少于列数,则输入中的第一列用于行名称。否则,如果缺少row.names,则对行进行编号。

使用row.names = NULL强制进行行编号。缺少或NULL row.names生成被认为是“自动”的行名(并且不会被as.matrix保留)。

答案 1 :(得分:0)

将第一列设置为行名。

read.csv("yourfile.csv", head=T, row.names=1)