ในโพสต์นี้ (วิธีเพิ่มตัวแปรที่ประมาณสัดส่วนของวันที่มีคนเห็นใครบางคนตั้งแต่ครั้งแรก) ฉันถามบางสิ่งที่มีเป้าหมายสุดท้ายที่คล้ายกัน แต่ที่นี่ dataframe นั้นแตกต่างไปจากเดิมอย่างสิ้นเชิง
ในที่นี้ df1
สรุปต่อชั่วโมง (Datetime
) จำนวนครั้งที่สัตว์ชนิดใดชนิดหนึ่ง (ID
) ถูกพบเห็น (Times_seen_per_hour
) ภายในพื้นที่เฉพาะที่สนใจ เนื่องจากเรารู้ว่าสัตว์อยู่ในบริเวณนี้ในเวลานี้หรือไม่ เราจึงสร้างคอลัมน์ Presence
ขึ้นมาด้วย ซึ่งระบุว่าสัตว์อยู่ในบริเวณที่เราสามารถตรวจจับได้หรือไม่
ฉันต้องการทราบสัดส่วนของชั่วโมงที่สัตว์ถูกตรวจพบ กับจำนวนชั่วโมงทั้งหมดที่เรารู้ว่าสัตว์อยู่ในพื้นที่นั้น
นี่คือตัวอย่างของสิ่งที่ฉันมีตอนนี้:
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
ตามที่กล่าวไว้ ฉันต้องสร้างตัวแปรใหม่ชื่อ Prop_hours_seen
ซึ่งระบุสัดส่วนของชั่วโมงที่สัตว์เห็น โดยคำนึงถึงจำนวนชั่วโมงทั้งหมดที่เรารู้ว่าสัตว์อยู่ที่นั่น (Presence == TRUE
)
ฉันคาดหวังสิ่งนี้:
> 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
ฉันรู้ว่ามันซับซ้อนที่จะเข้าใจ มีใครรู้วิธีทำบ้างไหม?
Times_seen_per_hour
เป็น 0 แต่การแสดงตนเป็นTRUE
ถ้าเป็น 0 ก็ไม่ควรเป็นFALSE
เหรอ? - person Sotos   schedule 08.07.2019Times_seen_per_hour
คือ0
และPresence
คือFALSE
แสดงว่าไม่มีปลาอยู่ที่นั่น แต่ถ้าTimes_seen_per_hour
คือ0
และPresence
คือTRUE
แสดงว่าอยู่ที่นั่นและเรามองไม่เห็น ดังนั้นฉันจึงต้องจัดการสิ่งเหล่านั้นที่นี่เพื่อให้ได้สิ่งที่ฉันต้องการ... - person Dekike   schedule 08.07.201912:00:00
สามารถมองเห็นสัตว์ได้ที่12:00:00
ดังนั้นจำนวนชั่วโมงทั้งหมดที่สามารถมองเห็นสัตว์ได้คือ1
สำหรับID
หมายเลข1
ในแถวที่ 3 เวลา13:00:00
อาจเห็นได้ในสองชั่วโมงที่แตกต่างกัน (เวลา12:00:00
และ13:00:00
) คุณเข้าใจไหม? ในแต่ละแถว ฉันพิจารณาเวลาก่อนหน้านี้ ไม่ใช่เวลาที่จะมาทีหลัง - person Dekike   schedule 08.07.2019