0

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

到目前为止我的代码:

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

但是,需要在它们周围v1加上v2引号。必须直截了当...

4

1 回答 1

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
于 2012-07-04T10:46:59.320 回答