R中带回路的价格指数模型

R中带回路的价格指数模型,r,loops,date,for-loop,time-series,R,Loops,Date,For Loop,Time Series,我试图复制一个同等加权的价格指数。我有价格和一个矩阵,它告诉我们股票何时进入和退出指数。这是一小部分数据 table="date, A, B,C,D,E,F 1,31/01/1998,1,1,1,1,1,0 2,28/02/1998,1,1,1,1,1,0 3,31/03/1998,1,1,1,1,1,0 4,30/04/1998,1,1,1,1,1,0 5,31/05/1998,1,1,1,1,1,0" matrix=read.csv(text=table) table2="date,A,B

我试图复制一个同等加权的价格指数。我有价格和一个矩阵,它告诉我们股票何时进入和退出指数。这是一小部分数据

table="date, A, B,C,D,E,F
1,31/01/1998,1,1,1,1,1,0
2,28/02/1998,1,1,1,1,1,0
3,31/03/1998,1,1,1,1,1,0
4,30/04/1998,1,1,1,1,1,0
5,31/05/1998,1,1,1,1,1,0"
matrix=read.csv(text=table)

table2="date,A,B,C,D,E,F    
1,05/01/98,20.56,97.40,279.70,72.85,20.33,298.00
2,06/01/98,20.56,96.50,276.20,72.90,20.22,299.90
3,14/02/98,20.84,98.45,282.50,73.75,20.70,302.80
4,15/02/98,20.90,98.50,280.70,73.65,20.71,306.50
5,09/03/98,20.58,97.00,276.20,72.95,20.25,304.00"
price=read.csv(text=table2)
股票在价格和矩阵数据中的顺序相同。因为我想把矩阵和价格相乘,所以我把它们都变成了矩阵

as.matrix(price)
as.matrix(matrix)
as.Date[price[,1], format="%d/%m/%y"] #Error: object of type 'closure' is not subsettable
as.Date[matrix[,1], format="%d/%m/%Y"]
(1) 然而在这里我遇到了我的第一个问题。无论是在矩阵中还是在使用
as.matrix()
之前,都无法识别日期。我还尝试了这里提出的方法()。我需要日期,原因如下。我想做一个1的循环。从矩阵中获取月份和年份,并在价格数据中搜索相同的月份和年份。2.如果发现相同的月份和年份,则应将矩阵中的行与价格中的行相乘。这是因为矩阵是按月计算的,价格是按日计算的。这就是我对循环的想法:

for (matrix(%m/%Y) in price$date){
  if (matrix(%m/%Y)== price(%m/%y)
    c<- matrix[position of matrix(%m/%Y),] %*% price[position of price(%m/%y),] 
}
然而,最后,我希望有一个同样加权的价格指数,如下所示:

table4="date, price
1,05/01/98,98.168
2,06/01/98,97.276
3,14/02/98,99.248
4,15/02/98,98.892
5,09/03/98,97.396"
desired_index=read.csv(text=table4)

如果我能把它放在我的循环中那就太好了。请注意,矩阵和价格由许多观察结果组成。因此,仅删除最后一列不是一个选项。

cbind(price[1],price[-1]*matrix[-1])
为您提供了“所需的”索引,但我不明白您想要的
所需的索引是什么。
matrix
price
的日期不一样。矩阵为每月一次,价格为每日一次。因此,尺寸也不相似。我的
期望_指数
就是每天所有价格的总和除以价格的数量。
table4="date, price
1,05/01/98,98.168
2,06/01/98,97.276
3,14/02/98,99.248
4,15/02/98,98.892
5,09/03/98,97.396"
desired_index=read.csv(text=table4)