2

R の関数に行き詰まっています。日付のベクトルがあり、5 日以上離れた日付のカップルを探しています。

これが私のベクトルの一部です:

    [1] "2011-10-06" "2011-09-28" "2011-09-20" "2011-08-29" "2011-09-09" "2011-08-16"
    [7] "2011-08-05" "2011-07-28" "2011-07-18" "2011-07-06" "2011-06-27" "2011-06-17"
    [13] "2011-06-03" "2011-05-22" "2011-05-02" "2011-05-12" "2011-04-21" "2011-04-11"
    [19] "2011-04-01" "2011-03-23

次のように、ベクトルの時間差を計算する方法を知っています。

dates <- as.list( c( "2011-10-06","2011-09-28","2011-09-20","2011-08-29","2011-09-09","2011-08-16","2011-08-05","2011-07-28","2011-07-18","2011-07-06","2011-06-27","2011-06-17","2011-06-03","2011-05-22","2011-05-02","2011-05-12","2011-04-21","2011-04-11","2011-04-01","2011-03-23" ) )
diff( as.Date( unlist(dates) ) )
#Time differences in days
# [1]  -8  -8 -22  11 -24 -11  -8 -10 -12  -9 -10 -14 -12 -20  10 -21 -10 -10  -9

私が望むのは、この基準を満たす日付のカップルを返すことです。ここの例では、カップル "2011-08-29","2011-09-09" は、私のベクトルで基準 "時差 > 5 日" を満たす最初のカップルです。

計算されたカップルを返す方法はありますか? ベクター内のアイテムの数を使用している可能性がありますか?

ご協力いただきありがとうございます!

4

1 に答える 1

6

which差分ベクトルのテストで使用して位置を取得し、これを使用して元のデータから値を選択します。

sel <- which(diff( as.Date( unlist(dates) ) )>5)

cbind(dates[sel],dates[sel+1])
     [,1]         [,2]        
[1,] "2011-08-29" "2011-09-09"
[2,] "2011-05-02" "2011-05-12"
于 2013-07-22T14:05:14.227 に答える