Введите
BP2018_spread <- tibble(
Month = c(
" Apr",
" Apr QTD",
" Apr YTD",
" Aug",
" Aug QTD",
" Aug YTD",
" Dec",
" Dec QTD",
" Dec YTD",
" Feb"
)
)
Выход 1
BP2018_spread %>%
mutate(Period_Type = if_else(
grepl("QTD", Month),'QTD',
if_else(grepl("YTD", Month),'YTD',
trimws(Month)
)))
OR
BP2018_spread %>%
mutate(Period_Type = case_when(
grepl("QTD", Month) ~ 'QTD',
grepl("YTD", Month) ~ 'YTD',
TRUE ~ trimws(Month)
))
Выход 2
BP2018_spread %>%
mutate(Period_Type = if_else(
grepl("QTD", Month),'QTD',
if_else(grepl("YTD", Month),'YTD',
'MTD'
)))
OR
BP2018_spread %>%
mutate(Period_Type = case_when(
grepl("QTD", Month) ~ 'QTD',
grepl("YTD", Month) ~ 'YTD',
TRUE ~ 'MTD'
))
В обоих случаях я использовал trimws
для обрезки пробелов, также вам не нужно BP2018_spread$
, так как mutate
понимает имена столбцов. Второй вариант кода под каждым выводом использует case_when
, который легче писать и понимать.