在R中输入变量名称处理

时间:2017-02-21 13:01:22

标签: r input variable-names

我想了解如何在函数中处理变量名的输入。例如,我写了一个这样的函数:

bin_multi <- function(y, dataframe, sel = NULL){
  if(!is.null(sel)) {
     dataframe <- dataframe[,sel]}
  else {
     dataframe <- dataframe[!y]}
}

dataframe是输入数据框,y是数据框中的目标变量,seldataframe中列的选择,例如{{1} }}。

此功能的目的是简单地将sel = c(1,2,3)的子集与给定的dataframe一起使用,如果未给出sel,则排除sel目标变量y

我的问题是,如何在此功能中正确引用dataframe?在输入中,y是变量的名称。 y可以解决这个问题吗?

谢谢大家。

1 个答案:

答案 0 :(得分:0)

我认为这会奏效:

bin_multi <- function(y, dataframe, sel = NULL){

  if(!is.null(sel)) {

     dataframe <- dataframe[,sel]

  } else {

     dataframe <- dataframe[,which(names(dataframe) != deparse(substitute(y)))]

  }

}

this answer上绘图以将您的对象名称转换为字符串。