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