[英]Function that returns a function in R
我正在嘗試創建一個創建並返回新函數的函數。 我嘗試了以下,但它不起作用。 我想要
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.