R-获取与用户函数中的正则表达式模式匹配的表列表
我希望在R中创建一个用户函数,它合并使用正则表达式查找这些表的多个表。在我的情况下,我希望合并我环境中以“m_”开头的所有表 这正是我想要的:R-获取与用户函数中的正则表达式模式匹配的表列表,r,regex,function,R,Regex,Function,我希望在R中创建一个用户函数,它合并使用正则表达式查找这些表的多个表。在我的情况下,我希望合并我环境中以“m_”开头的所有表 这正是我想要的: Reduce(function(...) merge(..., all = TRUE), mget(apropos("^m_"))) 但当我尝试将此代码转换为用户函数时,它不起作用: multi.merge <- function(...){ x <- Reduce(function(...) merge(...,
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_")
multi.merge尝试在函数中发送固定参数
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_")
multi.merge我们可以使用reduce
willfull\u-join
library(dplyr)
library(purrr)
multi.merge <- function(pattern) {
mget(ls(pattern = pattern, envir = .GlobalEnv), envir = .GlobalEnv) %>%
reduce(full_join)
}
dt <- multi.merge("^m_")
库(dplyr)
图书馆(purrr)
多重合并%
减少(完全联接)
}
dt返回:错误:.x
为空,并且没有提供.init
正则表达式模式可能有问题吗?我有一些表,比如“m_table1”、“m_table2”,我正在尝试匹配这些表。这应该是正确的吗@akrun您可以尝试multi.merge(“^m\u table\\d+$”)
m_table1 <- structure(list(col1 = 1:5), class = "data.frame", row.names = c(NA,
-5L))
m_table2 <- structure(list(col1 = 2:7, value = c(0.620061606036922, -0.833792752750578,
-0.939990781455841, 0.00275725433910228, 1.40140753383493, 0.708695548097395
)), class = "data.frame", row.names = c(NA, -6L))