#r
Вопрос:
Я новичок в R и программировании в целом и пытаюсь написать очень простую функцию, в которой вводятся 2 числа и выбор из одной из 3 операций. Предполагается, что вывод будет результатом дальнейшего вычисления (разделите результат ввода на 3*pi), а затем строкой символов, чтобы подтвердить, какая операция была выбрана/выполнена. Я хочу, чтобы операция по умолчанию была сложением.
Я немного прочитал о функции переключения и операторах типа if… else, но не уверен, что это наиболее эффективный способ достижения того, что я пытаюсь сделать, и до сих пор мне все равно ничего не удалось заставить работать. Кажется, я получаю массивную матрицу в качестве вывода или ошибку, указывающую, что я не могу вернуть несколько аргументов в своей текущей попытке. Может ли кто-нибудь помочь с тем, где я иду не так? Заранее спасибо.
basiccalc lt;- function(x, y, operation = addition){ addition lt;- x y subtraction lt;- x - y multiplication lt;- x * y calculation lt;- operation/(3*pi) return(calculation, "operation") }
Ответ №1:
switch
было бы полезно
basiccalc lt;- function(x, y, operation = addition) { operation lt;- deparse(substitute(operation)) op lt;- switch(operation, addition = x y, subtraction = x - y, multiplication = x * y) return(op/(3 *pi)) }
-тестирование
gt; basiccalc(3, 5) [1] 0.8488264 gt; 8/(3 * pi) [1] 0.8488264 gt; basiccalc(3, 5, operation = subtraction) [1] -0.2122066 gt; (3- 5)/(3 * pi) [1] -0.2122066