考虑第一个功能:
fruits <- function(apples, oranges){
apples + oranges
}
#example#
> fruits(2,3)
[1] 5
第二个函数使用第一个函数fruits
:
fruitsandvegetables <- function(tomatoes){
fruits(apples, oranges) + tomatoes
}
现在考虑以下错误:
> fruitsandvegetables(3)
Error in fruits(apples, oranges) : object 'apples' not found
> fruitsandvegetables(3, apples = 2, oranges = 3)
Error in fruitsandvegetables(3, apples = 2, oranges = 3) :
unused arguments (apples = 2, oranges = 3)
> fruitsandvegetables(tomatoes = 3, apples = 2, oranges = 3)
Error in fruitsandvegetables(tomatoes = 3, apples = 2, oranges = 3) :
unused arguments (apples = 2, oranges = 3)
我理解这些错误,但我想知道是否有一种简单的方法来解决这个问题。对于具有许多参数的更复杂的函数,重写函数可能非常繁琐。
换句话说,我希望函数以这种方式运行:
fruitsandvegetables(3, apples = 2, oranges =3)
[8]
答案 0 :(得分:4)
试试这个,
fruitsandvegetables <- function(tomatoes, ...){
fruits(...) + tomatoes
}
注意:如果番茄变成水果,可能会出现问题
答案 1 :(得分:0)
fruitsandvegetables
函数无法知道apples
和oranges
是什么。
您可以将这两个参数作为参数包含在函数中,如
fruitsandvegetables <- function(tomatoes, apples, oranges) {
fruits(apples, oranges) + tomatoes
}
fruitsandvegetables(3, apples = 2,oranges = 3)
#[1] 8
此外,
fruitsandvegetables(3,2,3)
#[1] 8