我正在使用用于福利计划的管理数据集,该计划为工人提供工资补贴。我正在尝试创建一个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))中的错误:无效的“长度”参数
答案 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
没有任何可复制的代码,很难完全理解问题。希望这会有所帮助。