2

2 つの関数を紹介します。

test_f <- function(df, var) {
  print(df$var)
}

test_s <- function(df, var) {
  print(df[, var])
}

そしてdfそれ自体:

df <- data.frame(c(0:10))
colnames(df) <- "X"

実行時に欠けているもの、$バージョンは を返しますNULL[]、結果は正しく出力されます:

> test_f(df, "X")
NULL
> test_s(df, "X")
 [1]  0  1  2  3  4  5  6  7  8  9 10
4

1 に答える 1

4

この[アプローチを使用すると、必要な行と列の両方を簡単に指定できること (複数形の使用に注意してください) と、 adata.frameまたは aに同じ構文を使用できることなどの利点がありますmatrix

関数を機能させたい場合は、eval(parse(...))R が抽出したいものを正確に把握できるようにするために を使用する必要があります。

次に例を示します。

test_f <- function(df, var) {
  a <- deparse(substitute(df))
  b <- deparse(substitute(var))
  Get <- paste(a, b, sep = "$")
  eval(parse(text = Get))
}
test_f(df, X)
#  [1]  0  1  2  3  4  5  6  7  8  9 10
于 2013-10-28T09:15:57.010 に答える