Ниже приведены три основных столбца моих данных (squirrel_id
= уникальный индивидуальный идентификатор, byear
= год рождения и dyear
= год смерти):
> summary(complete)
squirrel_id byear dyear
Min. : 416 Min. :1989 Min. :1989
1st Qu.: 4152 1st Qu.:1997 1st Qu.:1998
Median : 7870 Median :2003 Median :2004
Mean :10419 Mean :2004 Mean :2004
3rd Qu.:16126 3rd Qu.:2011 3rd Qu.:2012
Max. :23327 Max. :2017 Max. :2017
У меня есть второй фрагмент данных (показанный ниже), который я пытаюсь включить в вышеупомянутый набор данных.
mast.yr<-c("1993", "1998", "2005", "2010", "2014")
Я пытаюсь сделать две вещи:
- Добавьте столбец, в котором указано, был ли человек (
squirrel_id
) жив в течение какого-либо из mast.yr
лет (dyear
- byear
= диапазон лет жизни (включая byear
и dyear
).
- Добавьте еще один столбец, который подсчитывает, сколько
mast.yr
лет каждый человек (squirrel_id
) пережил в течение жизни (dyear
- byear
= диапазон лет жизни (включая byear
и dyear
).
Чтобы сгенерировать первый столбец, я использовал функцию mutate
в пакете dplyr
, но я могу заставить его работать только для byear
и dyear
отдельно, например:
complete <- complete %>%
mutate (mast = ifelse (byear %in% c("1993", "1998", "2005", "2010", "2014"), 1, 0),
mast = ifelse (dyear %in% c("1993", "1998", "2005", "2010", "2014"), 1, 0)))
Но он не дает желаемого результата, поскольку рассматривает byear
и dyear
самостоятельно, а не как непрерывный период времени. Я попробовал решения, опубликованные здесь и здесь , но не повезло.
Любые предложения будут оценены!
Копию моих данных можно найти здесь . Для воспроизводимости в будущем, вот пример:
> head(DF)
> squirrel_id byear dyear
<dbl> <int> <dbl>
6715 2006 2006
22274 2016 2017
20445 2014 2017
19528 2013 2013
2674 1995 1995
1419 1992 1993