R:使用用户输入将函数和参数作为参数传递给高阶函数

肖恩·辛金(Sean Sinykin)

我不确定这是否可行(至少我尝试这样做的方式),但我真的希望如此。我有一个非常复杂的测试环境,我正在R中开发它,如果我可以将函数及其相关参数作为高阶函数的参数传递的话,这真的很有帮助。我可以做到这一点而无需足够容易地要求用户输入,但是readline()产生字符串的事实使我尝试做的事情有些棘手。这是一个简化的版本(请注意,我为参数输入假设一个数值,但实际上,我正在对我的真实代码中的数据类型进行错误检查。这只是为了使理解更简单)。

read_in <- function(){
    temp_nm <- readline(prompt = paste("Enter the name of parameter: "))
    temp_vlu <- as.numeric(readline(prompt = paste("Enter the value for ",temp_nm,": ")))
    assign(temp_nm,temp_vlu,envir = .GlobalEnv)
    temp_param <- as.name(temp_nm)
    temp_params <- list(temp_param)
    return(temp_params)
}

我知道这不太起作用,因为它返回以下内容:

> read_in()
Enter the name of parameter: this_param
Enter the value for  this_param : 12
[[1]]
this_param

这很接近,因为它确实在全局环境中为this_param分配了12的值,但是我真的希望返回

> read_in()
Enter the name of parameter: this_param
Enter the value for  this_param : 12    
[[1]]
this_param = 12

因此,我可以将this_param = 12作为参数传递给另一个高阶函数(除了this_param作为参数的实际函数之外)。再次,与我实际尝试的操作相比,这是非常简单的操作,即通过使用UI而不是手动输入对我的高阶函数的调用,将一系列函数和相关参数作为高阶函数的参数进行传递这将是很长的时间,并且容易发生人为错误。总的来说,弄清楚如何实现我上面列出的内容将极大地帮助我的发展,因此,我们将不胜感激。谢谢!

拉尔

使用do.call可以将命名列表传递给函数

read_in <- function() {
  temp_nm <- readline(prompt = paste("Enter the name of parameter: "))
  temp_vlu <- as.numeric(readline(prompt = paste("Enter the value for ",temp_nm,": ")))
  setNames(list(temp_vlu), temp_nm)
}

f <- function(x, y, some_param) {
  some_param
}

out <- read_in()
# Enter the name of parameter: some_param
# Enter the value for  some_param : 12
# some_param 
#         12 

do.call('f', out)
# [1] 12

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R:使用用户输入将函数和参数作为参数传递给高阶函数

来自分类Dev

将内联函数定义作为输入参数传递给函数

来自分类Dev

将内联函数定义作为输入参数传递给函数

来自分类Dev

将函数作为参数传递给函数

来自分类Dev

将函数作为参数传递给函数

来自分类Dev

R,使用dplyr :: filter()和%in%将列名作为参数传递给函数

来自分类Dev

将R函数作为参数传递给RCpp函数

来自分类Dev

将输入元素的值作为参数传递给viewmodel函数

来自分类Dev

将函数和参数传递给函数

来自分类Dev

将函数和参数作为参数传递给中间函数,然后调用命名函数

来自分类Dev

将矩阵作为参数传递给函数

来自分类Dev

将函数作为参数传递给操作

来自分类Dev

将数组作为参数传递给函数

来自分类Dev

将函数作为参数传递给方法

来自分类Dev

将函数作为参数传递给Action

来自分类Dev

将向量作为参数传递给函数

来自分类Dev

将值列表作为参数传递给R中的函数

来自分类Dev

将列名作为参数传递给R函数

来自分类Dev

将代码作为参数传递给R函数

来自分类Dev

使用numpy和swig将2d数组作为参数传递给函数

来自分类Dev

如何将函数作为参数传递给参数?

来自分类Dev

R:将函数参数传递给sqldf

来自分类Dev

将Java脚本函数作为参数传递给C ++函数

来自分类Dev

将匿名函数作为参数传递给Erlang中的函数?

来自分类Dev

将函数(委托?)传递给期望对象的函数作为参数

来自分类Dev

如何将函数作为参数传递给transform()函数?

来自分类Dev

将类成员函数作为参数传递给全局函数

来自分类Dev

将指针传递给成员函数作为void *函数的参数

来自分类Dev

(SAS) 将函数作为参数传递给函数(或宏)

Related 相关文章

  1. 1

    R:使用用户输入将函数和参数作为参数传递给高阶函数

  2. 2

    将内联函数定义作为输入参数传递给函数

  3. 3

    将内联函数定义作为输入参数传递给函数

  4. 4

    将函数作为参数传递给函数

  5. 5

    将函数作为参数传递给函数

  6. 6

    R,使用dplyr :: filter()和%in%将列名作为参数传递给函数

  7. 7

    将R函数作为参数传递给RCpp函数

  8. 8

    将输入元素的值作为参数传递给viewmodel函数

  9. 9

    将函数和参数传递给函数

  10. 10

    将函数和参数作为参数传递给中间函数,然后调用命名函数

  11. 11

    将矩阵作为参数传递给函数

  12. 12

    将函数作为参数传递给操作

  13. 13

    将数组作为参数传递给函数

  14. 14

    将函数作为参数传递给方法

  15. 15

    将函数作为参数传递给Action

  16. 16

    将向量作为参数传递给函数

  17. 17

    将值列表作为参数传递给R中的函数

  18. 18

    将列名作为参数传递给R函数

  19. 19

    将代码作为参数传递给R函数

  20. 20

    使用numpy和swig将2d数组作为参数传递给函数

  21. 21

    如何将函数作为参数传递给参数?

  22. 22

    R:将函数参数传递给sqldf

  23. 23

    将Java脚本函数作为参数传递给C ++函数

  24. 24

    将匿名函数作为参数传递给Erlang中的函数?

  25. 25

    将函数(委托?)传递给期望对象的函数作为参数

  26. 26

    如何将函数作为参数传递给transform()函数?

  27. 27

    将类成员函数作为参数传递给全局函数

  28. 28

    将指针传递给成员函数作为void *函数的参数

  29. 29

    (SAS) 将函数作为参数传递给函数(或宏)

热门标签

归档