別の質問から発展する:
私はその質問の回答を使用してデータ内のシーケンスを識別しましたが、問題はありませんが、異なる番号のシーケンスを識別することに関しては行き詰まっています。たとえば、シーケンスは次のようになります。
私が現在使用しているコードは、上記の質問と同じです(rle)
サンプルデータ:
d<-read.table(text='Date.Time Aerial
794 "2012-10-01 08:18:00" 1
795 "2012-10-01 08:34:00" 1
796 "2012-10-01 08:39:00" 1
797 "2012-10-01 08:42:00" 1
798 "2012-10-01 08:48:00" 1
799 "2012-10-01 08:54:00" 1
800 "2012-10-01 08:58:00" 1
801 "2012-10-01 09:04:00" 1
802 "2012-10-01 09:05:00" 1
803 "2012-10-01 09:11:00" 1
1576 "2012-10-01 09:17:00" 2
1577 "2012-10-01 09:18:00" 2
804 "2012-10-01 09:19:00" 1
805 "2012-10-01 09:20:00" 1
1580 "2012-10-01 09:21:00" 2
1581 "2012-10-01 09:23:00" 2
806 "2012-10-01 09:25:00" 1
807 "2012-10-01 09:32:00" 1
808 "2012-10-01 09:37:00" 1
809 "2012-10-01 09:43:00" 1', header=TRUE, stringsAsFactors=FALSE, row.names=1)
繰り返される数列を認識するコード(同じ数が4回繰り返される):
tmp <- rle(d$Aerial)
d$newCol <- rep(tmp$lengths>=4, times = tmp$lengths)
ただし、異なる番号を含むシーケンスを識別する方法がわかりません。たとえば、シーケンスは次のようになります。「2012-10-0109:11:00」の1,2,2,1(d $ Aerialなど)
さまざまなパターンがあります。データは、特定の空中線での特定の時間における信号の検出ですが、質問を開いたままにするために、上記のように簡略化しました。したがって、パターンは1,2,2,1です。つまり、Aerial 1、2、2、1の順に検出されます(Aerial列)。私のデータでは、このパターンが発生すると、動物の行動の動きを示します。それを特定できれば、さらに計算を実行できます。
上記のコードは、数字が4回繰り返される場合を示していますが、互いに異なる4つの数字の繰り返しを識別することはできません:1,2,2,1
このシーケンス(1,2,2,1)はデータに複数回出現する可能性があるため、毎回識別したいと思います。