wpm <- rbind(merge(wp,rep(1,length(index(wp))),suffixes =c('','p_or_m')),merge(wm,rep(-1,length(index(wm)))))
wpm
result period_length rate open_p close_p p_or_m
9 1970 0.9157072 9 -0.0097365802 92.06 84.30 -1
1 1973 1.3763938 28 0.0114748680 84.30 116.03 1
1 1975 0.6634491 24 -0.0169506551 116.03 76.98 -1
5 1976 1.3013769 16 0.0166002074 76.98 100.18 1
7 1977 0.9867239 14 -0.0009541901 100.18 98.85 -1
<skip>
4 2016 1.0031085 16 0.0001940004 2058.90 2065.30 -1
12 2017 1.2933674 20 0.0129455360 2067.17 2673.61 1
8 2019 1.0904450 19 0.0045675511 2683.73 2926.46 -1
# return 1.0 以上のマイナスフェーズを探す。
# return 1.0 以上のマイナスフェーズを探して、その日付を取得する。
index(wpm[,1])[wpm[,6] == -1 & wpm[,1] > 1]
[1] " 6 1980" "11 1984" " 7 1986" "10 1989" " 1 1991" "12 1991" "11 1992" " 6 1995" " 1 1996" "10 1998" " 5 2005" " 6 2006"
[13] " 7 2010" " 9 2012" " 8 2014" " 4 2016" " 8 2019"
# return 1.0 以上のマイナスフェーズを探して、その日付ではなく
# その序数を取得する。51が最終エントリを指す序数であることに注意。
index(as.vector(wpm[,1]))[wpm[,6] == -1 & wpm[,1] > 1]
[1] 7 11 13 17 19 21 23 25 27 29 35 37 41 45 47 49 51
# 取得した序数に+1し、その次のエントリの序数を得る。
index(as.vector(wpm[,1]))[wpm[,6] == -1 & wpm[,1] > 1]+1
[1] 8 12 14 18 20 22 24 26 28 30 36 38 42 46 48 50 52
#シーケンスの要素数を調べる。51が最終エントリなので、序数=51+1に該当する要素は
# 元のデータフレームにはないことに注意。
length(index(as.vector(wpm[,1]))[wpm[,6] == -1 & wpm[,1] > 1]+1)
[1] 17
#[-17]をつけて該当する序数を削除の上、データを再構成する
wpm[(index(as.vector(wpm[,1]))[wpm[,6] == -1 & wpm[,1] > 1]+1)[-17],]
result period_length rate open_p close_p p_or_m
12 1980 1.1883753 6 0.029182211 114.24 135.76 1
2 1985 1.1075926 3 0.034649717 163.58 181.18 1
8 1987 1.3967474 13 0.026036742 236.12 329.80 1
2 1990 0.9751147 4 -0.006280247 340.36 331.89 1
8 1991 1.1498066 7 0.020142134 343.91 395.43 1
4 1992 0.9950124 4 -0.001249244 417.03 414.95 1
9 1994 1.0727019 22 0.003195123 431.35 462.71 1
10 1995 1.0674621 4 0.016454915 544.75 581.50 1
9 1997 1.4893871 20 0.020117927 636.02 947.28 1
3 2000 1.3639946 17 0.018427587 1098.67 1498.58 1
5 2006 1.0659588 12 0.005337085 1191.50 1270.09 1
6 2007 1.1836842 12 0.014151848 1270.06 1503.35 1
2 2011 1.1983603 7 0.026187620 1107.53 1327.22 1
3 2014 1.2994239 18 0.014657552 1440.90 1872.34 1
12 2014 1.0273593 4 0.006770750 2004.07 2058.90 1
12 2017 1.2933674 20 0.012945536 2067.17 2673.61 1
0 件のコメント:
コメントを投稿