可以使用deparse(substitute())组合来提取函数内部的参数名称,就像这个函数一样
names_from_dots <- function(...) {
deparse(substitute(...))
}
data(iris)
data(swiss)
names_from_dots(iris)
#[1] "iris"
names_from_dots(swiss)
#[1] "swiss"
Run Code Online (Sandbox Code Playgroud)
提取传入...(点)参数的data.frame的名称.
但是如何提取传递的多个data.frames的每个名称
names_from_dots(swiss, iris)
[1] "swiss"
names_from_dots(iris, swiss)
[1] "iris"
Run Code Online (Sandbox Code Playgroud)
这只返回第一个对象的名称.
如何获取包含传递给函数的点 - 点参数名称的字符向量,例如:
test<-function(x,y,...)
{
varnames=deparseName(substitute(list(...)))
# deparseName does not exist, this is what I want !
# so that I could *for example* call:
for(elt in varnames)
{print(varnames);}
}
v1=11
v2=10
test(12,12,v1,v2)
## would print
#v1
#v2
Run Code Online (Sandbox Code Playgroud)