可以使用deparse(substitute())
组合来提取函数内部的参数名称,如此函数
names_from_dots <- function(...) {
deparse(substitute(...))
}
data(iris)
data(swiss)
names_from_dots(iris)
#[1] "iris"
names_from_dots(swiss)
#[1] "swiss"
提取...
(dots)参数中传递的 Dataframe 的名称。
但是如何提取传递的多个 Dataframe 的每个名称呢
names_from_dots(swiss, iris)
[1] "swiss"
names_from_dots(iris, swiss)
[1] "iris"
当此函数只返回第一个对象的名称时。
3条答案
按热度按时间dm7nw8vv1#
我不会在这里使用
substitute
,它与...
1一起工作得很糟糕。相反,您可以使用以下命令捕获未计算的点:然后你可以得到点里面的参数:
我认为,部分原因是
substitute
在使用(a)参数(是一个“promise”对象)或(b)另一个对象调用时会做完全不同的事情。...
福尔斯落在这两者之间的某个地方。xj3cbfub2#
您可以尝试以下操作:
4dc9hkyq3#
另一种选择是使用rlang包(基于H.威克姆,高级R,第19.3.2节):