r - R从函数调用中获取参数名称
问题描述
我想从函数调用中获取参数名称:
testFun <- function(x = 1:20, z = list(a = 1, b = 2)) x %>% sin %>% sum
getArgNames <- function(value) {
# function should return all arguments names - in this case c("x", "z")
}
arg.names <- getArgNames(testFun())
重要的是不要在获取参数名称之前评估函数。有任何想法吗?
解决方案
使用formalArgs
@Akrun 建议的相同方法(以及几乎重复的 Get the argument names of an R function):
getArgNames <- function(value) formalArgs(deparse(substitute(value)[[1]]))
substitute(value)
引用输入,以防止立即评估,[[1]]
从解析的输入中检索函数,deparse
将其转换为character
(因为formalArgs
可以将函数名称作为character
)。
getArgNames(testFun())
#[1] "x" "z"
推荐阅读
- java - 如何让自定义绘制组件显示在摆动 GUI JPanel 中?
- linux - 如何在 BPF_PROG_TYPE_SK_SKB 判断程序中确定数据包的方向?
- c++ - 如何修复“运算符 [] 不匹配”错误 (c++)
- tensorflow - TensorFlow中的Hebian学习规则
- javascript - 仅当 div 的宽度超过特定高度 javascript 时如何显示按钮?
- php - 如何使用 BIND_RESULT & FETCH 而不是 mysqlnd 驱动程序
- java - 如何在 PostgreSQL 中将日期格式设置为 YYYY-MM-DDTHH:MI:SS
- fortran - 使用 OpenMP 的 Gauss Siedel 迭代求解器不收敛
- image - 使用 Flutter Image Picker 保证用户已经选择了图像
- jquery - 由“,”和“和”分隔的复选框值