【发布时间】:2015-09-18 09:27:28
【问题描述】:
我有(例如)以下两个函数,用户选择是先调用f1()再调用f2(),还是只调用f2():
f1 <- function(a, b) {
my_sum <- a + b
return(my_sum)
}
f2 <- function(a, b, c) {
my_sum2 <- a + b + c
return(my_sum2)
}
如果用户首先调用f1(),然后调用f2(),他知道他需要分配给a和b时分配给f1()时分配给a和b时的相同值当他打电话给f2()。问题是,如果他打电话来
x1 <- f1(a = 1, b = 2)
并向a 和b 提供值,然后当他调用f2() 时,我想让他只提供c 参数,而无需再次为a 插入相同的参数和b,他在调用f1()时使用。
例如:
> x1 <- f1(a = 1, b = 2)
> x1
[1] 3
> x2 <- f2(c = 2)
Error in f2(c = 2) : argument "a" is missing, with no default
当他调用x2 <- f2(c = 2) 时,我希望f2() 从x1 <- f1(a = 1, b = 2) 中获取a 和b 的值。
我怎样才能做到这一点?
任何帮助将不胜感激,
最好的,
阿亚拉
【问题讨论】:
-
f2 <- function(a, b, c) {if(missing(a) & missing(b) ) x1 + c else a + b + c}怎么样 -
@ExperimenteR,这假设 x1 在全局环境中,但情况可能并非如此(尽管上面的示例代码表明如此)
标签: r function arguments environment