1

任意の数のデータセットを行ごとに結合するラッパーを作成しています。一部には固有の変数がある可能性があるため、最初にデータ内の変数に制限しています。

私の機能はこのように機能します

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が消えます。何が起こっている?

4

1 に答える 1