r - 在 R 中返回函数的函数

标签 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()

关于r - 在 R 中返回函数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27629680/

相关文章:

r - 传递一个字符串作为数据框列名

r - 如何在列表的元素中存储多个向量?

R ggplot2 : join two sections of a line graph together

r - dplyr::recode 为什么管道会生成错误?

r - 如何计算R中的层次结构级别?

r - 在 R 中使用 sf 查找最近的特征

r - 选择所有值为正的组

r - 如何获取dtwclust的结果

r - 如何展平非原子函数结果,以便可以将其分配为dplyr突变步骤的一部分?

r - 为什么加载 mysql 在命令行中有效,但在 R 中使用 system() 则无效?