Ami*_*deh 3 r user-defined-functions
所以我想将 func1 的输出传递给 func2。
func1 <- function(x, y, z) {
k = x*2
j = y*2
i = z*2
}
func2 <- function(x, y, z) {
func1(x, y, z)
m = k * j * i
return (m)
}
Run Code Online (Sandbox Code Playgroud)
它不断打印错误。
这是另一个解决方案。这称为 a function factory
,意思是创建另一个函数的函数。由于func2
仅使用 的输出,因此它可以通过其父环境(即 的执行环境)func1
找到它们。只需注意我为了调用该函数而使用的额外一对括号,因为第一个函数的输出是一个函数。lexical scoping
func1
func1 <- function(x, y, z) {
k <- x * 2
j <- y * 2
i <- z * 2
func2 <- function() {
m <- k * j * i
m
}
}
func1(1, 2, 3)()
[1] 48
Run Code Online (Sandbox Code Playgroud)
有关更多信息,您可以阅读Hadley Wickham 的 Advanced R 的这一部分。
归档时间: |
|
查看次数: |
1199 次 |
最近记录: |