捕获函数中输入值的名称
Capture the name of an input value in a function
我想知道是否有办法在下面的函数中捕获参数 study_id
的输入。
例如,在下面的例子中我想要的输出是:"study"
。这可能吗?
library(rlang)
foo <- function(data, study_id){
study_id <- ensym(study_id)
# names(data[study_id]) # I tried this without success
}
# EXAMPLE OF USE:
dat = data.frame(a=1:3,study=4:6)
foo(dat, study_id = study)
# DESIRED OUTPUT:
> [1] "study"
我们可以使用 as_string
foo <- function(data, study_id){
study_id <- ensym(study_id)
as_string(study_id)
}
-测试
foo(dat, study_id = study)
[1] "study"
在base R
中,这可以用deparse/substitute
来完成
foo1 <- function(data, study_id) deparse(substitute(study_id))
foo1(dat, study_id = study)
[1] "study"
我想知道是否有办法在下面的函数中捕获参数 study_id
的输入。
例如,在下面的例子中我想要的输出是:"study"
。这可能吗?
library(rlang)
foo <- function(data, study_id){
study_id <- ensym(study_id)
# names(data[study_id]) # I tried this without success
}
# EXAMPLE OF USE:
dat = data.frame(a=1:3,study=4:6)
foo(dat, study_id = study)
# DESIRED OUTPUT:
> [1] "study"
我们可以使用 as_string
foo <- function(data, study_id){
study_id <- ensym(study_id)
as_string(study_id)
}
-测试
foo(dat, study_id = study)
[1] "study"
在base R
中,这可以用deparse/substitute
foo1 <- function(data, study_id) deparse(substitute(study_id))
foo1(dat, study_id = study)
[1] "study"