if ( cond) { yes } else { no }
является управляющей структурой. Он был разработан, чтобы воздействовать на программирование, а не на обработку последовательности. Я думаю, что многие люди из SPSS или SAS, авторы которых выбрали «IF» для реализации условного присваивания в своих функциях DATA или TRANSFORM, и поэтому они ожидают, что R будет вести себя так же, тогда как R произошел из традиции программирования. Неявные циклы for встроены во многие векторизованные функции (включая ifelse
).
ifelse
принимает выражение, которое создает вектор логических значений в качестве первого аргумента. Второй и третий аргументы должны быть векторами равной длины, и выбирается либо первый из них, либо второй. Это похоже на команды SPSS / SAS IF
, которые имеют неявный построчный режим работы.