关于基于年龄生成年龄变量的想法

问题描述 投票:0回答:1

我多年来试图创建一个虚拟变量。目前,我的数据中每个观察都有一个生日日期和一个程序开始日期。我已经能够创建一个变量来衡量某人的天数,但是我实际上正在寻找的是一个变量:age_join_date,它告诉我以下内容:

Individual birth_date    start_date  age_at_join_date
A          1990-12-31    2010-12-31  31 yrs old

B          1990-12-31    2011-12-31  32 yrs old

基本上,我关心的是他们加入该计划时的年龄,而不是他们的实际年龄。

dplyr tidyverse dummy-variable
1个回答
0
投票

您的问题对我来说并不是很清楚,但是我认为您可以使用某些lubridate函数作为相应区间的区间运算符%--%years来达到预期的结果。

library(lubridate)
library(dplyr)

tibble::tribble(
  ~Individual,  ~birth_date,  ~start_date,
  "A", "31/12/1990", "31/12/2010",
  "B", "31/12/1990", "31/12/2011"
) %>% 
  mutate_at(vars(ends_with("date")), dmy) %>%  #just making date columns as date
  mutate(age_at_join_date = birth_date %--% start_date/years(1))

#> # A tibble: 2 x 4
#>   Individual birth_date start_date age_at_join_date
#>   <chr>      <date>     <date>                <dbl>
#> 1 A          1990-12-31 2010-12-31               20
#> 2 B          1990-12-31 2011-12-31               21

reprex package(v0.3.0)在2020-02-12创建

© www.soinside.com 2019 - 2024. All rights reserved.