如何在R中使用比例来获得精确的回顾期?

时间:2015-07-24 11:33:47

标签: r scale center

我想扩展&中心一些数据,我知道如何用

来扩展它
(scale(data.test[,1],center=TRUE,scale=TRUE))

我有365次观察(一年),并希望扩展和扩展将我的数据集中在一个20天的回顾期。

例如我想这样做: "标准化为20天的回顾期"意味着要缩放我的第一个值01/01/2014(年/月/日)我必须仅在20天前缩放它。所以从2013年12月12日到2013年12月31日的价值 而对于02/01/14,它从12/12/13到01/01/14等等。

将数据标准化 =(数据 - 所有数据的平均值/所有数据的标准差(参见我的代码)

但是我想要" 20天的回顾期"意味着我只需要查看最后的20个值 =(数据 - 前20个数据的平均值)/ 20个先前数据的标准偏差

我想要制作一个循环吗?由于我是R的新手,我不知道如何在R中编写循环,或者即使有更好的方法来做我想要的... 如果你可以帮我这个。

1 个答案:

答案 0 :(得分:2)

  

您需要20天的回顾:lookback<-20 data.scale<-c() #Create a vector for the data scaled for(i in lookback:nrow(data)){ mean<-mean(data[i-(lookback-1):i,1],na.rm=T) sd<-sd(data[i-(lookback-1):i,1],na.rm=T)*sqrt(((lookback-1))/lookback)   data.scale<-c(data.scale,(data[i,1]-mean)/sd) }

对于要使用第1天到第20天的数据,第21天从第2天到第21天的数据进行标准化的第20行,依此类推......