У меня есть data.frame со специальным столбцом a
.Этот столбец может быть либо числом, либо ОСОБЕННЫМ значением, которое говорит мне посмотреть на столбец b
.
foo <- tibble(
a=c("15", "20", "SPECIAL", "13"),
b=c(NA, NA, 32, NA)
)
Было бы здорово, если бы я мог преобразовать это, используя dplyr
foo %>%
mutate(
a=ifelse(a == "SPECIAL",
b,
as.numeric(a)
)
)
Хорошо выглядит, хорошо читает.К сожалению, ifelse(test, yes, no)
оценивает оба аргумента yes
и no
.И, конечно же, as.numeric(a)
выдает предупреждение для SPECIAL
.
Есть ли какая-нибудь альтернатива для ifelse
, которая может автоматически разбить сначала data.frame?Я хочу избегать оценки as.numeric(a)
Примечание: отредактируйте, чтобы сделать проблему более понятной