当前位置:  开发笔记 > 编程语言 > 正文

创建没有eval/parse的函数列表

如何解决《创建没有eval/parse的函数列表》经验,为你挑选了1个好方法。

我有相等长度的3个向量y,h并且hp定义如下:

y  <- c(2, 5, 6)
h  <- c(4, 25, 35)
hp <- c(3, 10, 12)

这些值只是说明性的.

我想创建一个函数的输出列表 final_list,x如下所示

function(x) y + (h - hp) * x

(仅显示理想的说明性输出):

[[1]]
[1] function(x) 2 + (1) * x

[[2]]
[1] function(x) 5 + (15) * x

[[3]]
[1] function(x) 6 + (23) * x

我知道这可以通过eval/parse完成,但这不会为函数生成透明输出.

我想从这3个向量创建函数并输出而不使用eval/parse.如果可能的话,我会非常乐意学习并留下深刻的印象!



1> Dason..:
y <- c(2,5,6)
h <- c(4, 25, 35)
hp <- c(3, 10, 12)
fun_create <- function(y, h, hp){
  fun <- function(x){y + (h - hp)*x}
  return(fun)
}
out <- mapply(y, h, hp, FUN = fun_create)

输出没有给出你可能期望但它正常工作:

> out
[[1]]
function (x) 
{
    y + (h - hp) * x
}


[[2]]
function (x) 
{
    y + (h - hp) * x
}


[[3]]
function (x) 
{
    y + (h - hp) * x
}


> out[[1]](1)
[1] 3

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有