Чтобы использовать ту же функцию, вы можете использовать map
варианты
library(dplyr)
library(purrr)
P2 %>% mutate(y = map_chr(value, assignFormat))
# A tibble: 6 x 2
# value y
# <chr> <chr>
#1 Unique Claims Comma
#2 Unique Records Comma
#3 Spend Today Currency
#4 Spend Yesterday Currency
#5 % Returned Percent
#6 % Claimed Percent
Вы также можете перейти на функцию, чтобы использовать ifelse
вместо if
assignFormat <- function (textValue = as.character()) {
ifelse(grepl("Unique", textValue), "Comma",
ifelse(grepl("Spend", textValue), "Currency",
ifelse(grepl("%", textValue),"Percent", "Other")))
}
P2 %>% mutate(y = assignFormat(value))
ИЛИ Другой вариант - использовать case_when
, который предназначен для таких операций.
P2 %>%
mutate(y = case_when(grepl("Unique", value) ~ "Comma",
grepl("Spend", value) ~ "Currency",
grepl("%", value) ~ "Percent",
TRUE ~ "Other"))