从函数中的数据框列中选择一个列

时间:2015-08-02 13:34:04

标签: r function

我找不到使用函数从data.frame中选择变量的方法。 我试过像

这样的东西
modDiagnosis<-function<-(x){
  #prediction
  pred<-prediction(test[,x],test$VAR2)
}

modDiagnosis<-function<-(x){
  vars<-deparse(substitute(x))
  #prediction
  pred<-prediction(test[,vars],test$VAR2)
}

但总是得到同样的错误

Error in `[.data.frame`(test, , x) : object 'x' not found

我做错了什么?

1 个答案:

答案 0 :(得分:2)

调用该函数时,您很可能需要引号。示例数据框:

df <- data.frame(x=1:4)
df
#  x
#1 1
#2 2
#3 3
#4 4

创建一个返回子集的简单函数:

f <- function(x) df[,x]

并调用该函数返回列x

f(x)
#Error in `[.data.frame`(df, , x) : object 'x' not found

这是您收到的错误。评估者正在寻找对象x并且无法找到它。尝试:

f("x")
#[1] 1 2 3 4

通过引用列名,我们可以找到正确的列。希望有助于解决问题。