函数中data.frame中$和[]之间的差异

时间:2013-10-28 09:00:10

标签: r

让我们介绍两个函数:

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

1 个答案:

答案 0 :(得分:4)

使用[方法有其优点,其中包括能够轻松指定所需的行和列(请注意在那里使用复数)并且能够为{{使用相同的语法1}}或data.frame

如果你想让你的功能发挥作用,你必须使用matrix来帮助R找出你想要提取的内容。

以下是一个例子:

eval(parse(...))