繁体   English   中英

在 R 函数中将对象分配给 arguments - 开关,if else 语句或函数?

[英]Assigning objects to arguments in R functions - switches, if else statements or functions?

我是 R 和一般编程的新手,我正在尝试编写一个非常基本的 function,其中输入是 2 个数字并从 3 个操作之一中进行选择。 output 应该是进一步计算的结果(将输入的结果除以 3*pi),然后是一个字符串,以确认选择/执行的操作。 我希望默认操作是添加。

我已经阅读了一些关于开关 function 和 if...else 类型的语句,但不确定什么是实现我想要做的最有效的方法,到目前为止我还没有能够得到任何工作反正。 我似乎得到了一个巨大的矩阵,如 output 或者说我在当前尝试中无法返回多个 arguments 的错误。 有人可以帮忙解决我哪里出错了吗? 先感谢您。


basiccalc <- function(x, y, operation = addition){

addition <- x + y

subtraction <- x - y

multiplication <- x * y

calculation <- operation/(3*pi)

return(calculation, "operation")
}

switch会很有用

basiccalc <- function(x, y, operation = addition) {
   operation <- deparse(substitute(operation))
   op <- switch(operation,
        addition = x + y,
        subtraction = x - y,
        multiplication = x * y)
   return(op/(3 *pi))
}

-测试

> basiccalc(3, 5)
[1] 0.8488264
> 8/(3 * pi)
[1] 0.8488264
> basiccalc(3, 5, operation = subtraction)
[1] -0.2122066   
> (3- 5)/(3 * pi)
[1] -0.2122066

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM