代码之家  ›  专栏  ›  技术社区  ›  NelsonGon phoxis

提取函数的结果

  •  1
  • NelsonGon phoxis  · 技术社区  · 5 年前

    我找过这里,但无法解决我的问题: Extract the results of a function

    假设我们有一个返回用户所写内容的伪函数,如何提取该函数中的内容。我从机器学习算法中使用的功能中获得灵感。例如,这种功能:

    z<-train(.........)#just an example
    

    从上面我可以提取几个结果,例如, z$finalmodel #an example 等等。怎么做到的? 下面是我的示例函数:

    dummy_fun<-function(x,y){
      y<-deparse(substitute(y))
      x<-deparse(substitute(x))
      z<-data.frame(X=x,Y=y)
      q<-print(paste0("You wrote ",x," and ", y))
    
    }
    res<-dummy_fun(Hi,There)
    

    这个 dummy_fun 包含对象Z和Q,如何提取它们? 谢谢!

    1 回复  |  直到 5 年前
        1
  •  4
  •   abhiieor    5 年前

    更简单的功能可以是(没有 deparse(substitute()) :

    dummy_fun<-function(x,y){
      z<-data.frame(X=x,Y=y)
      q<-paste0("You wrote ",x," and ", y)
      return(list(z = z, q = q))
     }
    

    当用参数调用时:

    > dummy_fun(x = 1, y = 2)
    $z
      X Y
    1 1 2
    
    $q
    [1] "You wrote 1 and 2"