我正在编写一个包装器来按行组合任意数量的数据集。由于有些变量可能具有唯一的变量,因此我首先限制数据中的变量。
我的功能是这样工作的
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
它消失了。到底是怎么回事?