r - R - 在用户函数中获取与正则表达式模式匹配的表列表
问题描述
我希望在 R 中创建一个用户函数,它合并多个使用正则表达式查找这些表的表。在我的情况下,我想合并环境中以“m_”开头的所有表。
这正是我想要的:
Reduce(function(...) merge(..., all = TRUE), mget(apropos("^m_")))
但是当我尝试将此代码转换为用户函数时它不起作用:
multi.merge <- function(...){
x <- Reduce(function(...) merge(..., all = TRUE), mget(apropos(...))
return(x)
}
dt <- multi.merge("^m_")
错误:未找到“m_table1”的值
我尝试过使用不同的函数,例如get0
or syms
,而不同的语法最终会导致相同的错误。我怀疑这只是与我不理解的函数结构中的问题有关。
有什么办法可以使这项工作?
解决方案
尝试在函数中发送一个固定参数。
multi.merge <- function(pattern){
Reduce(function(...) merge(..., all = TRUE), mget(ls(pattern = pattern))
#Or
#Reduce(function(...) merge(..., all = TRUE), mget(apropos(pattern))
}
dt <- multi.merge("^m_")
推荐阅读
- sql - 仅将某些列从一个表复制到另一个表并插入 defa
- javascript - 我收到错误消息:无法注册 ServiceWorker:获取脚本时收到错误的 HTTP 响应代码 (404)
- libgdx - 当我将代码编译为 HTML5 时,它并不总是接受新的更改
- c++ - do while 中的无限循环
- python - 调整字典中的数据,然后绘制它
- python - 从 Pandas 形式的 iris 数据集到 sk-learn 形式的有效方法?
- postgresql - pgpool2 看门狗在尝试使用 docker-compose 设置相互连接时崩溃
- vba - 从外部 excel VBA 更新电子表格
- python - 如何在我的 eureka 服务器上注册 python 微服务(spring boot)
- haskell - 在我的 Cabal 版本中“没有指定版本”是什么意思?