【发布时间】:2019-07-08 13:33:35
【问题描述】:
在这篇文章 (How to add a variable that estimate the proportion of days someone has been seen since the first time) 中,我问了一些与最终目标相似的问题,但这里的数据框完全不同。
在这里,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 而 Presence 为TRUE?如果是 0 不应该是FALSE? -
这不是和之前的问题类似吗?
-
谢谢。不,我和鱼一起工作。 Presence == TRUE 表示鱼在我感兴趣的区域,Presence== FALSE 表示鱼不在此区域。但是鱼在我的区域并不意味着我们用眼睛发现了它,因为有时它们是隐藏的。所以,我想知道我们可以看到鱼的小时数与我们知道鱼在那里的总小时数的比例。你明白吗?
-
“我们将看到的小时数除以(看到 1 小时)” - 但该 ID 会在另外 8 小时内看到?
-
与我提出的其他数据框的不同之处在于,尽管鱼不在那里,但我在这里每个人和每小时都有一行。如果
Times_seen_per_hour是0并且Presence是FALSE,则意味着鱼不在那里。但是如果Times_seen_per_hour是0并且Presence是TRUE,则意味着它就在那里,我们看不到它。所以我必须在这里管理这些东西才能得到我想要的......