r - 通过粘贴字符作为输入来创建函数
问题描述
我想创建一个名称由输入给出的函数。例如,在下面的函数中,我想粘贴loglik.tree.
输入字符model
,所以我不需要if
为每种情况调用一个语句。在这种情况下,变量loglik.tree.xxx
是函数。
loglik.tree <- function(model){
if(model == "rpd"){
log.lik = loglik.tree.rpd
}
if(model == "dd"){
log.lik = loglik.tree.dd
}
if(model == "edd"){
log.lik = loglik.tree.edd
}
if(model == "pd"){
log.lik = loglik.tree.pd
}
if(model == "epd"){
log.lik = loglik.tree.epd
}
if(model == "gddx"){
log.lik = loglik.tree.gddx
}
if(model == "gpdx"){
log.lik = loglik.tree.gpdx
}
return(log.lik)
}
任何帮助表示赞赏。我试图找到它的解决方案,但我没有成功搜索。
解决方案
粘贴模型字符串作为后缀,然后粘贴该get
名称的函数。
get(paste0("loglike.tree.", model))
match.fun
也可以:
match.fun(paste0("loglike.tree.", model))
推荐阅读
- c# - 未找到 Magick.NET-Q16-x64.Native.dll
- c# - 当我添加 WebService 时出现错误:“名称空间 'namespace1' 中不存在类型或名称空间名称 'namespace2'”
- php - For loop time update(H:i) with 10 minutes in php
- laravel - 如何通过干预/图像提高书面文本中的文本?
- php - Blackfire 失败“配置文件数据被截断”
- c++ - 从链表中删除节点时的 C++ 问题
- javascript - 使用 JSON.stringify 后发布到快递服务器时,它不起作用
- sql-server - 无法访问通过 SQL Server 2014 Management Studio 中的 Plesk 创建的 SQL Server 数据库
- machine-learning - 卷积和循环神经网络
- php - 面临在 magento 云中更新 magento 的问题,将 magento 更新到最新版本的 magento 2.3.2