r - 如何获取R中的变量名称(替代)?

标签 r variables substitution

我试图通过几个函数传递变量,而在最后一个函数中,我想获取原始变量的名称。但是,似乎R中的替代功能仅在“本地”环境中或仅在一个更高级别上才能看到。好吧,让我用代码解释一下:

fun1 <- function (some_variable) {deparse(substitute(some_variable)}
fun2 <- function (var_pass) { fun1 (var_pass) }
my_var <- c(1,2) # I want to get 'my_var' in the end
fun2 (my_var) # > "var_pass"


好吧,似乎我们在打印仅传递给fun1的变量的名称。替代品的文档告诉我们,我们可以使用env参数来指定外观。但是通过传递.Global或.BaseNamespaceEnv作为替代参数,我得到了更奇怪的结果-“ some_variable”

我相信答案是使用env参数在此函数中,因此,请您解释一下它的工作原理以及如何获得所需的信息。提前致谢!

最佳答案

我建议您考虑将可选名称值传递给这些函数。我之所以这样说,是因为您似乎真的想将名称用作最终结果的标签;因此,实际上变量本身与其名称无关紧要。你可以做

fun1 <- function (some_variable, name=deparse(substitute(some_variable))) {
    name
}
fun2 <- function (var_pass, name=deparse(substitute(var_pass))) { 
    fun1 (var_pass, name) 
}
my_var <- c(1,2)

fun2(my_var)
# [1] "my_var"

fun1(my_var)
# [1] "my_var"


这样,如果您最终拥有一些奇怪的变量名称以及为结果赋予更好名称的内容,那么您至少可以选择。并且默认情况下,它应该执行您想要的操作而不必使用name参数。

关于r - 如何获取R中的变量名称(替代)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24309910/

相关文章:

mysql - 解析 R 数据帧的 JSON 列

r - 按中位数拆分数据框

Python 使用列表理解或 apply() 返回特定列

python - 如何将 Bash 变量传递给 Python?

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

node.js - Sendgrid 替换标签

r - 序列化错误(数据,节点 $con): error writing to connection

linux - ANDROID_HOME 不会设置并且 Cordova 项目不会构建

Python 单词替换(用字典中的值替换花括号中的值)

python - 使用替换的正则表达式来转换数字