我想创造一个能够创建和返回新函数的函数。我尝试了以下代码,但不起作用。我需要:
myfunc <- function(W){
myfunc2=function(X){
Y=W%*%X
return(Y)
}
return(myfunc2)
}
我希望能在myfunc之外使用myfunc2。 有什么想法吗?
我想创造一个能够创建和返回新函数的函数。我尝试了以下代码,但不起作用。我需要:
myfunc <- function(W){
myfunc2=function(X){
Y=W%*%X
return(Y)
}
return(myfunc2)
}
我希望能在myfunc之外使用myfunc2。 有什么想法吗?
是的,它确实可以。从我的终端来看:
> myfunc <- function(W){
+
+ myfunc2=function(X){
+ Y=W%*%X
+ return(Y)
+ }
+ return(myfunc2)
+ }
> myfunc()
function(X){
Y=W%*%X
return(Y)
}
<environment: 0x5034590>
myfunc2 <- myfunc()
但除此之外,它似乎完全正常工作。如果你想将其隐式分配给全局环境,而不是必须分配给一个对象:
myfunc <- function(W){
myfunc2=function(X){
Y=W%*%X
return(Y)
}
assign("name_you_want_in_the_global_environment",myfunc2, envir = .GlobalEnv)
return(invisible())
}
myfunc()
只需将myfunc的输出分配给一个函数对象,例如myfunc2。然后您可以像在全局环境中创建一样使用它。
> myfunc <- function(W){
+
+ myfunc2=function(X){
+ Y=W%*%X
+ return(Y)
+ }
+ return(myfunc2)
+ }
> W = diag(2)
> myfunc2 = myfunc(W)
> myfunc2
function(X){
Y=W%*%X
return(Y)
}
<environment: 0x1078a7a38>
> X = diag(2)
> myfunc2(X)
[,1] [,2]
[1,] 1 0
[2,] 0 1