任意の数のデータセットを行ごとに結合するラッパーを作成しています。一部には固有の変数がある可能性があるため、最初にデータ内の変数に制限しています。
私の機能はこのように機能します
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
が消えます。何が起こっている?