我正在编写一个包装器来按行组合任意数量的数据集。由于有些可能有独特的变量,我首先限制数据中的变量。
我的功能是这样的
rcombine <- function(List, Vars) {
List2 <- lapply(List, subset, select=Vars)
Reduce(rbind, List2)
}
当我直接运行代码时,它可以工作。但是在函数中,我的变量Vars
消失了。
例如:
x <- data.frame('a'=sample(LETTERS, 10), 'b'=sample(LETTERS, 10), 'c'=sample(LETTERS, 10))
y <- data.frame('a'=sample(LETTERS, 10), 'b'=sample(LETTERS, 10), 'e'=sample(LETTERS, 10))
rcombine(list(x, y), c('a', 'b'))
给我:
Error in eval(expr, envir, enclos) : object 'Vars' not found
但运行:
List <- list(x, y)
Reduce(rbind, lapply(List, subset, select=c('a','b')))
作品。我可以Vars
从函数中打印,但它在里面lapply
消失了。到底是怎么回事?