Dalam posting ini (Bagaimana cara menambahkan variabel yang memperkirakan proporsi hari seseorang dilihat sejak pertama kali) Saya menanyakan sesuatu dengan tujuan akhir yang serupa, tetapi di sini kerangka datanya sama sekali berbeda.
Di sini, df1
merangkum per jam (Datetime
) berapa kali hewan tertentu (ID
) terlihat (Times_seen_per_hour
) dalam area tertentu. Karena kami mengetahui apakah hewan tersebut berada di area tersebut pada jam ini, kami juga membuat kolom Presence
, yang menunjukkan apakah hewan tersebut berada di area yang dapat kami deteksi.
Saya ingin mengetahui proporsi jam dimana hewan tersebut terdeteksi dibandingkan dengan jumlah total jam yang kita ketahui bahwa hewan tersebut berada di area tersebut.
Di sini, contoh dari apa yang saya miliki sekarang:
df1<- data.frame(Datetime= ymd_hms(c("2019-05-20 12:00:00","2019-05-20 12:00:00","2019-05-20 13:00:00","2019-05-20 13:00:00","2019-05-20 14:00:00","2019-05-20 14:00:00","2019-05-20 15:00:00","2019-05-20 15:00:00","2019-05-20 16:00:00","2019-05-20 16:00:00","2019-05-20 17:00:00","2019-05-20 17:00:00","2019-05-20 18:00:00","2019-05-20 18:00:00","2019-05-20 19:00:00","2019-05-20 19:00:00")),
ID= c(1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2),
Times_seen_per_hour=c(3,0,0,4,2,1,3,2,1,0,0,0,7,0,4,1),
Presence= c(TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE))
df1
Datetime ID Times_seen_per_hour Presence
1 2019-05-20 12:00:00 1 3 TRUE
2 2019-05-20 12:00:00 2 0 FALSE
3 2019-05-20 13:00:00 1 0 TRUE
4 2019-05-20 13:00:00 2 4 TRUE
5 2019-05-20 14:00:00 1 2 TRUE
6 2019-05-20 14:00:00 2 1 TRUE
7 2019-05-20 15:00:00 1 3 TRUE
8 2019-05-20 15:00:00 2 2 TRUE
9 2019-05-20 16:00:00 1 1 TRUE
10 2019-05-20 16:00:00 2 0 FALSE
11 2019-05-20 17:00:00 1 0 TRUE
12 2019-05-20 17:00:00 2 0 FALSE
13 2019-05-20 18:00:00 1 7 TRUE
14 2019-05-20 18:00:00 2 0 TRUE
15 2019-05-20 19:00:00 1 4 TRUE
16 2019-05-20 19:00:00 2 1 TRUE
Seperti disebutkan, saya perlu membuat variabel baru bernama Prop_hours_seen
yang menunjukkan proporsi jam hewan tersebut terlihat dengan jumlah total jam yang kita ketahui hewan tersebut berada di sana (Presence == TRUE
).
Saya mengharapkan ini:
> df1
Datetime ID Times_seen_per_hour Presence Prop_hours_seen
1 2019-05-20 12:00:00 1 3 TRUE 1.00 # We divide number of hours seen between total number of hours it could have been seen, that is 1/1.
2 2019-05-20 12:00:00 2 0 FALSE NA # We don't consider this hour since the animal wasn't in our area of interest.
3 2019-05-20 13:00:00 1 0 TRUE 0.50 # We divide number of hours seen (it was seen 1 hour) between total number of hours it could have been seen (it could have been seen at 12:00:00 and at 13:00:00), that is 1/2=0.5.
4 2019-05-20 13:00:00 2 4 TRUE 1.00
5 2019-05-20 14:00:00 1 2 TRUE 0.66
6 2019-05-20 14:00:00 2 1 TRUE 1.00
7 2019-05-20 15:00:00 1 3 TRUE 0.75
8 2019-05-20 15:00:00 2 2 TRUE 1.00
9 2019-05-20 16:00:00 1 1 TRUE 0.80
10 2019-05-20 16:00:00 2 0 FALSE NA
11 2019-05-20 17:00:00 1 0 TRUE 0.66
12 2019-05-20 17:00:00 2 0 FALSE NA
13 2019-05-20 18:00:00 1 7 TRUE 0.71
14 2019-05-20 18:00:00 2 0 TRUE 0.75
15 2019-05-20 19:00:00 1 4 TRUE 0.75
16 2019-05-20 19:00:00 2 1 TRUE 0.80
Saya tahu ini rumit untuk dipahami, adakah yang tahu cara melakukannya?
Times_seen_per_hour
menjadi 0 tetapi Kehadiran adalahTRUE
? Jika 0 bukankah seharusnyaFALSE
? - person Sotos   schedule 08.07.2019Times_seen_per_hour
adalah0
danPresence
adalahFALSE
berarti ikannya tidak ada. Namun jikaTimes_seen_per_hour
adalah0
danPresence
adalahTRUE
, berarti ia ada dan kita tidak dapat melihatnya. Jadi saya harus mengatur hal-hal itu di sini untuk mendapatkan apa yang saya inginkan... - person Dekike   schedule 08.07.201912:00:00
hewan tersebut dapat terlihat pada jam12:00:00
, jadi jumlah total jam yang dibutuhkan hewan tersebut untuk terlihat adalah1
. UntukID
nomor1
pada baris nomor 3, pada jam13:00:00
dapat dilihat pada dua jam yang berbeda (pada jam12:00:00
dan pada jam13:00:00
). Apakah kamu mengerti? Di setiap baris, saya mempertimbangkan waktu-waktu sebelumnya, bukan waktu-waktu yang datang kemudian. - person Dekike   schedule 08.07.2019