使用日期创建分类Y变量

时间:2019-12-03 23:28:44

标签: r dplyr

我正在使用用于福利计划的管理数据集,该计划为工人提供工资补贴。我正在尝试创建一个Y变量,其中1等于不再接收补贴的人,0等于当前正在接受补贴的人,其中end_date = NA。我将使用两个变量进行此操作:1-start_date和2-end_date。

我尝试了以下代码,但收到错误消息:

train_worker_subsidy5_categorical_y = train_worker_subsidy5 %>% 
  mutate(left_welfare = numeric(is.na(end_date)))
test_worker_subsidy5_categorical_y = test_worker_subsidy5 %>%
  mutate(left_welfare = numeric(is.na(end_date)))

错误消息是:

  

numerical(is.na(end_date))中的错误:无效的“长度”参数

1 个答案:

答案 0 :(得分:1)

如果我了解您的问题,我会使用这种方法。

df <- data.frame('start_date' = as.Date(c('2018-01-01','2019-02-01',
                                          '2019-03-01','2019-04-01')),
                  'end_date' = as.Date(c('2019-01-01',NA,'2019-08-01',
                                   '2020-01-01')))

 today <- Sys.Date()

df %>% mutate('receiving' = if_else(is.na(df$end_date),0,
                              if_else(df$end_date > today,0,1)))

       start_date   end_date      receiving
      1 2018-01-01   2019-01-01         1
      2 2019-02-01        <NA>          0
      3 2019-03-01   2019-08-01         1
      4 2019-04-01   2020-01-01         0

没有任何可复制的代码,很难完全理解问题。希望这会有所帮助。