Итак, я пытаюсь создать оператор if, где, если число столбцов больше 1, то оно будет делать несколько форм манипуляции с этой матрицей, и если в матрице меньше или равно 1 столбца он не будет проводить анализ. Вот некоторые из кода:Если инструкция else в R
M < - NxN матрицы
if (ncol(M) > 1) {
function1
function2
function3
...
}
else {}
Однако, когда я делаю это я получаю следующее сообщение об ошибке:
Error in if (ncol(M) > 1) { : argument is of length zero
Похоже, что М это не то, что вы думаете. Отправьте вывод 'str (M)' перед запуском блока if/else. – Dason
Чтобы быть в безопасности, вы также должны переместить 'else' до той же строки, что и закрывающая скобка на' if', чтобы избежать синтаксических ошибок. – joran
Я предполагаю, что вы создаете 'M', подмножая некоторую другую матрицу или data.frame' x'. Если вы действительно используете 'M <- x [, my.subset, drop = FALSE]' иначе 'M' будет превращен в вектор, если вы просто извлечете один столбец. – Backlin