Это немного уродливо, но вы также можете сделать
iris %>%
mutate(new =`label<-`(ifelse(Species == 'setosa', 1, 0), value="New Variable"))
Это не обойдет ни одну из проверок, которые label<-
делает по умолчанию, чтобы структура пропускала.Вы также можете обернуть это в функцию, чтобы сделать его чище.
labelled <- function(x, label) {
label(x) <- label
x
}
iris %>%
mutate(new =labelled(ifelse(Species == 'setosa', 1, 0), "New Variable"))
# or
iris %>%
mutate(new =ifelse(Species == 'setosa', 1, 0) %>% labelled("New Variable"))