R:使用一个函数的参数作为另一个函数的参数

时间:2015-10-08 19:13:07

标签: r

我试图创建一个自定义函数,它具有需要另一个函数参数的arugment。例如,像这样:

funct1 <- function(x,y,z){
   x + y + z
}

funct2 <- function(funct1, multiplier) {
  print("first arg is ": [funct1 x arg]
  print("second arg is ": [funct1 y arg]
  print("third arg is ": [funct1 z arg]
}

first <- funct1(1,2,3)
funct2(first1, 2) 
#first arg is 1
#second arg is 2
#third arg is 3

first <- funct1(3,4,5) #12
funct2(first1, 2) 
#first arg is 3
#second arg is 4
#third arg is 5

2 个答案:

答案 0 :(得分:2)

如果您希望能够将函数和参数传递给新函数而不必定义那些参数是什么,那么您可以使用...

f1 <- function(x, y, z){x + y + z}
f2 <- function(x, y){x * y}

doubler <- function(func, ...){
  func(...) * 2
}

f1(1, 2, 3)
# 6
doubler(f1, 1, 2, 3)
# 12
f2(3, 4)
# 12
doubler(f2, 3, 4)
# 24

答案 1 :(得分:1)

你只需要在每个变量中都有相同的变量。虽然最终的游戏是什么?

funct1 <- function(x,y,z){
   x + y + z
}

funct2 <- function(x,y,z) {
  funct1(x,y,z) * 2
}

funct2(3,4,5)

> 24