我正在尝试创建一个函数来选择数据框中的变量列表。标准很简单,两个选定变量之间的所有变量。
到目前为止我的代码:
var_bw <- function(v1, v2, data) {
data[ ,which(names(data)==v1):which(names(data)==v2)]
}
但是,需要在它们周围v1
加上v2
引号。必须直截了当...
使用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