提取函数的结果

Nel*_*Gon 1 r function

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

假设我们有一个返回用户写入内容的虚拟函数,我如何提取该函数内的内容。我从机器学习算法中使用的函数中汲取灵感。比如这样的函数:

z<-train(.........)#just an example
Run Code Online (Sandbox Code Playgroud)

从上面我可以提取几个结果,例如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)
Run Code Online (Sandbox Code Playgroud)

包含dummy_fun对象 z 和 q,如何提取它们?多谢!

abh*_*eor 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))
 }
Run Code Online (Sandbox Code Playgroud)

当使用参数调用时:

> dummy_fun(x = 1, y = 2)
$z
  X Y
1 1 2

$q
[1] "You wrote 1 and 2"
Run Code Online (Sandbox Code Playgroud)