r - 如何在 R 函数中重用代码?

标签 r function code-duplication

我有一段代码要在函数中多次使用(我们称之为 myFunction )。我自然想避免重复这段代码,但我找不到一种方法来重用它,除非把它放在一个外部文件中并每次都获取它。

我尝试的第一件事是将重复的代码放在一个没有参数的内部迷你函数中(我们称之为 internalFunction 。这意味着我可以根据需要调用 internalFunction ;但是,这掩盖了 internalFunction 从主环境输出的对象myFunction

然后我尝试使用 <<- 运算符在 internalFunction 内分配输出对象,以便它们可用于 myFunction 的主环境。不幸的是,这也使这些对象可用于 myFunction 之外的全局 R 环境,我想避免这种情况。

有没有办法将 R 代码块写入对象然后调用它,或者从对象而不是文件中获取?我真的很想a)避免重复代码和b)将所有代码包含在一个文件中。

最佳答案

我认为您想要的是将多个值返回给调用函数的一些简单方法,这可以通过列表来完成,如下所示:

maxmin <- function(i1,i2){

  if (i1>i2){
    mx <- i1
    mn <- i2
  }  else
  {
    mn <- i1
    mx <- i2
  }
  rv <- list(min=mn,max=mx)
  return(rv)
}

r1 <- maxmin(3,4)
r2 <- maxmin(6,5)

print(sprintf("minimums %d %d",r1$min,r2$min))
print(sprintf("maximums %d %d",r1$max,r2$max))

编辑:我去掉了列表元素名称的引号,它们不是必需的

关于r - 如何在 R 函数中重用代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30547825/

相关文章:

r - "abline"不 't work after "情节 "when inside "与“

javascript - 循环内的异步函数

javascript - 我写的这段代码有什么问题吗?

c# - 在 C# 和 javascript 中避免重复代码的任何想法

r - R 可视化中 X 轴上的日期不是日期格式

r - 如何在R中的弹性包中使用index_create()为数据建立索引

Javascript 函数在第二次尝试时不会进入下一个列表

c++ - 如何避免与大多数相同成员函数的代码重复?

Java POJO 与 CSV 之间的转换,使用字段名称作为列标题

r - 将 Dunnett 检验的 P 值按变量提取到表中