Во-первых, как говорит ?case_when
,
LHS должен вычислять логический вектор.
Это означает, что такие вещи, как ELSE, не допускаются в том виде, как они есть.не логичное значение.Но можно все еще задаться вопросом, скажем, почему мы не можем использовать FALSE.
Вот как все работает в вашем примере.Сначала мы просматриваем все строки для случаев, когда cyl == 4
равно TRUE
, и устанавливаем соответствующие новые значения на "weak"
.Во-вторых, среди оставшихся строк мы ищем так, чтобы cyl == 6
было TRUE
и там использовалось "medium"
.Если мы остановимся здесь, то
Если ни одного случая не совпадает, возвращается NA.
Итак, как нам тогда поступить с оставшимися строками?TRUE
(с использованием рециркуляции) - тривиально TRUE
в каждом оставшемся случае, что позволяет вернуть "other"
.
Таким образом, это комбинация LHS, которая должна быть логичной, и последовательный способ работы суказанные случаи.