Последняя строка кода должна использовать |
вместо ||
.
Одиночная вертикальная черта работает с векторами, а двойная черта - только со скалярами.
Предположим, что ihзначение столбца "". Тогда i-е значение результата равно "" == "" | "" == "0" | is.na("")
, что равно ИСТИНА |ЛОЖЬ |ЛОЖЬ, ИСТИНА.
Предположим, что i-е значение столбца равно "0". Тогда i-е значение результата равно "0" == "" | "0" == "0" | is.na("0")
, что равно FALSE |ИСТИНА |FALSE - TRUE.
Предположим, что i-е значение столбца равно NA. Тогда i-е значение результата равно NA == "" | NA == "0" | is.na(NA)
, что равно NA |NA |ИСТИНА, которая ИСТИНА.
Таким образом, i-е значение результата ИСТИНА для любого из условий. В противном случае ЛОЖЬ.
Для получения дополнительной информации см .: Булевы операторы && и ||