R语言 在case_when()中使用日期变量

gstyhher  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(123)

我想创建一个新的变量,它依赖于其他变量,按行。对于特定的月份和年份,我想指定一个变量的特定值。对于其他月份和年份,我希望变量从其他列中获取日期值。

df <- df %>%  mutate(start_of_risk = case_when(
  month == 8 & year == 2010 ~ "2010-10-01", 
  month == 9 & year == 2010 ~ "2010-10-01",
  month == 3 & year == 2011 ~ date))

但是,当我尝试此操作时,出现以下错误:

Error in `mutate()`: ℹ In argument: `start_of_risk = case_when(...)`.
Caused by error in `case_when()`: ! Can't combine `..1 (right)`
<character> and `..8 (right)` <date>. Backtrace:
1. df %>% ...
9. dplyr::case_when(...)

有没有可能在case_when()中使用日期,或者有没有办法解决这个问题?

sdnqo3pr

sdnqo3pr1#

如注解所述,您在可能的响应类中存在不匹配。试试看

df <- df %>%  mutate(start_of_risk = case_when(
  month == 8 & year == 2010 ~ as.Date("2010-10-01"), 
  month == 9 & year == 2010 ~ as.Date("2010-10-01"),
  month == 3 & year == 2011 ~ date))

如果您仍然在这个更改中遇到错误,我们需要查看date变量的外观以给予更详细的响应。

相关问题