【发布时间】:2021-02-28 07:48:51
【问题描述】:
我希望有人能够帮助我计算我数据集中每只动物的年龄(以天为单位)?
我的数据如下所示,描述了通过时间捕获和测量的个体动物。 example$frab.num 是提供唯一动物标识符的因子变量,example$date 是描述捕获动物日期的日期变量(“日期”类),example$wt 是捕获时动物的重量,单位为克.
我的数据框总共包含超过 3800 只在 1996 年至 2020 年间捕获的个体动物。有些动物一生中被捕获多达 30 次,但平均而言,动物只能活 1-3 年,并且可能只被捕获一生中 3 到 4 次。
> example
frab.num date wt
1 001 1996-10-22 1600
2 002 1996-10-22 1450
3 003 1996-10-22 1800
4 004 1996-10-22 1450
5 005 1996-10-22 1700
6 006 1996-10-22 1750
7 007 1996-10-22 1800
8 008 1996-10-22 1350
9 009 1996-10-22 1750
10 010 1996-10-22 1100
11 011 1996-10-22 1000
12 012 1996-10-22 1400
13 013 1996-10-22 1750
14 014 1996-10-22 1400
15 015 1996-10-22 1200
16 016 1996-10-22 700
17 017 1996-10-22 1000
18 018 1996-10-22 450
19 019 1996-10-22 300
20 020 1996-10-22 1100
如果一只动物在 1500 克体重之前首次被捕获,那么我们可以以天为单位计算它们的年龄,因为我们知道它们平均每天长约 10 克。这将获得每只动物首次捕获的年龄。然后,我们可以通过添加第一个捕获日期的年龄以及第一个捕获日期和后续捕获日期之间的天数时间差来计算每个动物在后续捕获日期的年龄。我们无法计算首次捕获时大于 1500 克的动物的年龄。
编辑:可以访问大型示例数据集here
编辑 2: 输出的示例如下所示。请注意,这只是一个小示例,因此不包括重新捕获。年龄中的 NA 值表示动物在首次捕获时大于 1500 克的情况,因此无法计算年龄。
> example
frab.num date wt age
1 001 1996-10-22 1600 NA
2 002 1996-10-22 1450 145
3 003 1996-10-22 1800 NA
4 004 1996-10-22 1450 145
5 005 1996-10-22 1700 NA
6 006 1996-10-22 1750 NA
7 007 1996-10-22 1800 NA
8 008 1996-10-22 1350 135
9 009 1996-10-22 1750 NA
10 010 1996-10-22 1100 110
11 011 1996-10-22 1000 100
12 012 1996-10-22 1400 140
13 013 1996-10-22 1750 NA
14 014 1996-10-22 1400 140
15 015 1996-10-22 1200 120
16 016 1996-10-22 700 70
17 017 1996-10-22 1000 100
18 018 1996-10-22 450 45
19 019 1996-10-22 300 30
20 020 1996-10-22 1100 110
提前谢谢你
【问题讨论】:
-
如果我们计算捕获时的年龄,我们还需要生日。 R 中的年龄计算也已在之前的帖子中得到解答——例如,stackoverflow.com/questions/3611314/calculate-ages-in-r/…。
-
感谢@Ronak Shah 和@LC-datascientist。我做了一些编辑来发布,希望它们有意义。我没有动物的出生日期,但我们知道它们每天长约 10 克,直到达到 1500 克体重。因此,如果我们在 1500 克重量之前捕获它们,我们基本上可以通过
example$date - (example$wt/10)估计它们的出生日期 - 如果它们在首次捕获时超过 1500 克,那么我们根本无法估计年龄。