R 用于kmeans分析的Lag xts对象
我试图使用从R-bloggers获得的用于kmeans集群的代码来获得一个单变量分布。作者使用的例子是标准普尔500指数,该指数是用getSymbols'SPY'获得的。我正在尝试将代码应用于我自己的数据。我需要弄清楚: 我认为,如何修改代码,使其正确地重新运行我的数据,因为创建者的一些输入需要更改 我需要知道为什么它只滞后于数据1天,见下文,因为我的数据是每月的,需要根据我的数据改变滞后 我看到代码的作用是将数据延迟一个周期。作者的代码使用每日标准普尔数据,但我的数据是每月一次。我遇到的问题是,通过使用作者的代码,它使我的数据滞后一天而不是一个月。我一直在努力更好地理解代码,但我不知道在哪里修改代码,使其延迟1个月 我的数据:R 用于kmeans分析的Lag xts对象,r,k-means,xts,R,K Means,Xts,我试图使用从R-bloggers获得的用于kmeans集群的代码来获得一个单变量分布。作者使用的例子是标准普尔500指数,该指数是用getSymbols'SPY'获得的。我正在尝试将代码应用于我自己的数据。我需要弄清楚: 我认为,如何修改代码,使其正确地重新运行我的数据,因为创建者的一些输入需要更改 我需要知道为什么它只滞后于数据1天,见下文,因为我的数据是每月的,需要根据我的数据改变滞后 我看到代码的作用是将数据延迟一个周期。作者的代码使用每日标准普尔数据,但我的数据是每月一次。我遇到的问题是
Composite
2006-07-31 -3.35
2006-08-31 3.46
2006-09-30 3.80
2006-10-31 4.24
2006-11-30 2.97
2006-12-31 -0.33
以下是代码,我对其稍作修改以省略nas:
###################if you want uniform distribution - uncomment the following lines##############
rez=na.omit(apply(
(nasa),2,function(x){
y=(xts(x,order.by=as.POSIXct(as.Date(attr(x,'names')))))
print(xts(rollapply(y,20,function(z){which(order(z)==20)/20},align='right')))
}))
nasa=xts(rez,order.by=as.POSIXct(tail(index(nasa),-19)))
colnames(nasa)=c('Percent of High')
原始代码:
那密码太可怕了。我甚至猜不出它应该做什么。简单地使用?lag?有什么不对?所以所有这些都可以用:x来代替