1

以下のようなカメラ トラップ データを含むデータベースを処理しようとしています。写真の撮影にタイムラグがないので、立て続けに出てくる写真は同一人物である可能性が高いです。

同じ個体である可能性が高いため、種の重複が互いに 10 分以内に発生する場合は削除したいと考えています。(つまり、最後の写真と次の写真の間が 10 分未満の場合)。Rでこれを行う方法はありますか?ありがとうございました!

  Site.Name Sampling.Unit.Name Photo.Date Photo.Time   Genus Species Number.of.Animals
1 Ranomafana        CT-RNF-1-01 06/10/2010   00:01:00                                  
2 Ranomafana        CT-RNF-1-01 11/10/2010   00:28:00 Eliurus  tanala                 1
3 Ranomafana        CT-RNF-1-01 12/10/2010   04:39:22   Fossa fossana                 1
4 Ranomafana        CT-RNF-1-01 12/10/2010   04:39:27   Fossa fossana                 1
5 Ranomafana        CT-RNF-1-01 12/10/2010   16:47:41 Nesomys   rufus                 1
6 Ranomafana        CT-RNF-1-01 12/10/2010   16:47:46 Nesomys   rufus                 1
4

1 に答える 1

0

data.frameこれが日付と時刻だけのあなたです

 dat <- data.frame(Photo.Date =
 c("6/10/2010","11/10/2010","12/10/2010","12/10/2010","12/10/2010","12/10/2010"),
 Photo.Time = c("00:01:00","00:28:00","04:39:22","04:39:27","16:47:41","16:47:46"))

次に、strptime(strip time) を使用して日付を POSIX 形式に変換します。

date_vec <-strptime(paste(dat$Photo.Date, dat$Photo.Time), "%d/%m/%Y %H:%M:%S")

次のステップは、各観測間の時間差を決定することです。これを行うには、観察 1 と 2、2 と 3、3 と 4 を比較する必要があります...

first_date <- date_vec[1:(length(date_vec)-1)]
second_date <- date_vec[2:length(date_vec)]
second_gap <- difftime(second_date, first_date, units="mins")

間隔が 10 分未満のギャップを特定します。TRUEまた、最初に保持するために追加する必要があります。

dup_index <- second_gap>10
dup_index <- c(TRUE, dup_index)
dat[dup_index, ]

どちらが返されますか

  Photo.Date Photo.Time
1  6/10/2010   00:01:00
2 11/10/2010   00:28:00
3 12/10/2010   04:39:22
5 12/10/2010   16:47:41

HTH

于 2012-08-03T00:32:33.913 に答える