Я пытаюсь преобразовать код MATLAB в код R . В MATLAB у меня есть следующий символ
if (~exist('Arch', 'var')), Arch = 5; end
if ~isfield(opt,'HIS'), opt.HIS = 1; end
if ~isfield(opt,'HERS'), opt.HERS = inf; end
if ~isfield(opt,'MINE'), opt.MINE = 0; end
~ в MATLAB интерпретируется как Найти логическое НЕ
спасибо на ответы ниже первая строка кода становится
if (!all(sapply(c("A","B"), exists))){A = 5}
, а для второй части следующий код, похоже, не работает. isfield (S, field) in MATLAB возвращает 1, если field является именем поля в массиве структур S. В противном случае возвращается 0. В моем случае S = opt является struct R-функция. Как правильно перевести ~ в этой части?
if (!isfield(opt,'HIS') {opt.HIS <- 1}
if (!isfield(opt,'HERS') {opt.HERS <- inf}
if (!isfield(opt,'MINE') {opt.MINE <- 0}