创建函数 - 在括号中插入引号或设置变量

时间:2012-07-04 10:30:12

标签: r function quotes

我正在尝试创建一个选择数据框中变量列表的函数。标准是两个选定的变量之间的所有变量的简单。

到目前为止我的代码:

var_bw <- function(v1, v2, data) {
  data[ ,which(names(data)==v1):which(names(data)==v2)]
}

但是,v1v2需要引用它们。必须直截了当......

1 个答案:

答案 0 :(得分:1)

使用substitute

var_bw <- function(v1, v2, data) {
  index <- which(names(data)==substitute(v1)):which(names(data)==substitute(v2)) 
  data[, index]
}

使用iris的一些示例:

head(var_bw(Sepal.Length, Petal.Length, iris))
  Sepal.Length Sepal.Width Petal.Length
1          5.1         3.5          1.4
2          4.9         3.0          1.4
3          4.7         3.2          1.3
4          4.6         3.1          1.5
5          5.0         3.6          1.4
6          5.4         3.9          1.7

并且

head(var_bw(Petal.Length, Species, iris))
  Petal.Length Petal.Width Species
1          1.4         0.2  setosa
2          1.4         0.2  setosa
3          1.3         0.2  setosa
4          1.5         0.2  setosa
5          1.4         0.2  setosa
6          1.7         0.4  setosa