Я без проблем запускаю следующее if
условие в R:
nrow<-ifelse(S1_input, 1, ifelse(S2_input & nchar(bands)>40, 2, ifelse(S1_S2_input & nchar(bands)>40, 3, ifelse (S2_input & nchar(bands)<40, 4, 5))))
Где S1_input
, S2_input
, S1_S2_input
- логические переменные (ИСТИНА / ЛОЖЬ) (только однаможет быть TRUE
, остальные FALSE
) и bands
это просто строковая переменная
Я пытаюсь поделиться своим кодом с помощью блокнота Юпитера, и эта же строка выдает ошибку, но ТОЛЬКО когда S1_input
is FALSE
Ошибка в S2_input & nchar (диапазонах)> 40: операции возможны только для числовых, логических или сложных типов
Трассировка:
- ifelse (S1_input, 1, ifelse (S2_input & nchar (диапазоны)> 40, 2,
ifelse (S1_S2_input &
. Nchar (диапазоны)> 40, 3, ifelse (S2_input && nchar (диапазоны)) <40, <br>. 4, 5)))) - ifelse (S2_input & nchar (диапазоны)> 40, 2, ifelse (S1_S2_input &
. Nchar (диапазоны)> 40, 3, ifelse (S2_input && nchar (band) <40, <br>. 4, 5)))