0

私は金融時系列情報、価格、出来高の長いベクトルを持っています。出来高ベクトルに基づいて価格ベクトルを展開するので、基本的には 1 株あたりの取引価格が得られるので、分析されるベクトルは 1 つだけです。このベクトルをそれぞれ 100 (任意の数) の長さに分割し、これらの新しいベクトルのそれぞれに Mann-Kendall 傾向分析を適用したいと思います。以下は、私がこれのために持っているコードです。

この分割メソッドが出力をリストとして生成しているため、Mann Kendall テストからエラーが発生しています。

新しいベクターを作成し、各ベクターで Mann Kendall テストを実行し、各テストの出力に簡単にアクセスできる方法はありますか?

library(Kendall)

priceexp <- rep(price, volume)

max <- 100
xx <- seq_along(priceexp)
d1 <- split(priceexp, ceiling(xx/max))

for(i in (1:length(d1))) {
    MannKendall(d1[i])
}

入力用の 2 つのベクトルのサンプル:

"price","volume"
125,4020
125,1100
125,191
124.8,329
125.5,400
125.6,100
125.7,600
125.2,686
125.2,898
125.2,1416
125.6,150
125.6,500
125.6,200
125.6,41
125.5,400
125.7,300
125.7,14
125.7,1200
125.7,300
125.7,686
125.8,1000
125.8,1700
125.8,144
125.8,225
125.9,500
125.9,446
126,500
126,225
126,500
126,250
126,28
126,340
126,600
125.9,275
125.9,323
125.9,152
125.8,1931
125.9,196
125.9,571
125.8,214
125.8,300
125.7,353
125.8,432
125.8,1356
126,400
126,2133
126,300
126,190
126,376
125.8,186
126,750
126,431
126,1403
126,39
125.9,259
126.1,900
126.1,307
126.1,124
126.1,750
126.2,100
126.2,117
126,200
126,94
126,453
126,149
126,661
126,600
126,549
126,315
126,318
126,297
125.9,300
125.9,454
125.9,370
125.8,114
125.8,1100
125.8,7344
125.8,2656
125.8,333
126,120
125.9,878
125.9,462
125.9,899
125.9,45
125.7,2000
125.7,889
125.7,4611
125.7,2500
125.9,652
125.9,1610
125.9,332
125.9,750
125.9,627
125.9,473
125.9,182
125.9,32
125.9,1305
125.9,98
125.9,330
125.9,373
125.9,636
125.9,1291
125.9,1675
125.9,1029
125.9,314
125.9,400
125.9,699
125.9,300
125.8,300
125.8,7
126,659
125.9,750
126,441
126,2000
126,86
126,300
126,1300
125.9,243
125.9,456
125.9,64
126,400
126,2000
125.9,319
125.9,423
125.8,447
125.8,387
125.8,352
125.8,200
125.8,1123
125.8,379
125.8,300
125.8,600
125.8,61
125.8,340
125.8,200
4

1 に答える 1

1

lapplyたとえば、ここでは最初の 5 つの要素に対してのみ実行します。

   lapply(d1[1:5],MannKendall)
WARNING: Error exit, tauk2. IFAULT =  12
WARNING: Error exit, tauk2. IFAULT =  12
WARNING: Error exit, tauk2. IFAULT =  12
WARNING: Error exit, tauk2. IFAULT =  12
WARNING: Error exit, tauk2. IFAULT =  12
$`1`
tau = 1, 2-sided pvalue =1

$`2`
tau = 1, 2-sided pvalue =1

$`3`
tau = 1, 2-sided pvalue =1

$`4`
tau = 1, 2-sided pvalue =1

$`5`
tau = 1, 2-sided pvalue =1

編集

の結果MannKendallはリストです。リストから外すことができます。

   do.call(rbind,lapply(d1[1:5],function(x)unlist(MannKendall(x))))

  tau sl S D varS
1   1  1 0 0    0
2   1  1 0 0    0
3   1  1 0 0    0
4   1  1 0 0    0
5   1  1 0 0    0
于 2013-02-11T21:16:36.467 に答える