我试图将极值理论的块最大值(在我的情况下为最小值)方法应用于财务报告。我每天有30个财务指数存储在一个名为'Returns'的csv文件中。我通过加载数据提取最小值返回
Returns<-read.csv("Returns.csv", header=TRUE)
然后我提取在等于长度(即,5天)对每个索引我在我的“Returns.csv”文件的连续的不重叠的块的最小返回开始。为此,我做了以下
for (xx in Returns) #Obtain the minima.
{
rows<-length(xx) #This is the number of returns
m<-5 #When m<-5 we obtain weekly minima. Change accordingly (e.g., 20)
k<-rows/m #This is the number of blocks (i.e., number of returns/size of block),
bm<-rep(0,k) #which is also the number of extremes
for(i in 1:k){bm[i]<-min(xx[((i-1)*m+1):(i*m)])}
#Store the minima in a file 'minima.csv'
write.table(bm,file="minima.csv", append=TRUE, row.names=FALSE, col.names=FALSE)
代码提取所有指数最小值返回正确的,但是当最小值存储在文件“minima.csv”他们都出现在同一列(附加)。 我想要的代码是读取文件'Returns.csv'的第一列中包含的财务回报,提取连续的非重叠的等长(即5天)块的最小回报并将它们存储在文件'minima.csv'的第一列中。然后对文件'Returns.csv'的第二列中包含的财务回报执行完全相同的操作,并将最小值返回存储在文件'minima.csv'的第二列中,依此类推,直到达到第30列。
请将您'Returns'数据('到你的问题复制和粘贴dput的'输出(返回))的样品。 – nrussell 2015-04-03 15:33:53
感谢您及时回复nrussell。我有成千上万的数据点。我不确定这是不是你的意思,但这里是: – Kostas 2015-04-03 19:59:13
我在我的问题中添加了一个小样本。对不起,如果这不是你的意思。我本来可以上传文件的方式。非常感谢 – Kostas 2015-04-03 20:08:56