获取R函数返回的变量的名称

用户名

我有以下代码:

library(magrittr)
a <- function(cars) return(cars)
b <- function(x) return(list(varname = deparse(substitute(x)), content = x))

b(cars)返回带有字符串cars和data.frame内容的列表cars

有什么办法a(cars) %>% b()还可以返回字符串cars(由函数返回的变量的名称a())和data.frame的内容?

相反,它返回.和data.frame的内容。

也就是说,我希望第二个函数返回第一个函数返回的变量的名称以及变量的内容。

我实际上想要做的b()是类似write.csv(x, paste0(deparse(substitute(x)), ".csv"))

有什么建议?

弗里克先生

如果您看一下%>%操作员内部的调用堆栈,您将得到如下内容

a(cars) %>% (function(x) sys.calls())

# [[1]]
# a(cars) %>% (function(x) sys.calls())
# [[2]]
# withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
# [[3]]
# eval(quote(`_fseq`(`_lhs`)), env, env)
# [[4]]
# eval(expr, envir, enclos)
# [[5]]
# `_fseq`(`_lhs`)
# [[6]]
# freduce(value, `_function_list`)
# [[7]]
# withVisible(function_list[[k]](value))
# [[8]]
# function_list[[k]](value)
# [[9]]
# (function (x) sys.calls())(.)

您可以看到您的函数最终何时被调用,与原始表达式相比,您已经有了很多距离。问题在于该参数可能已在链中重新分配。考虑这种情况

a <- 6
b <- a
f <- function(x) deparse(substitute(x))
f(b)
# [1] "b"

但是R无法知道b实际来自a没有办法在这样的作业中向后走。substitute只有在您仍然可以访问传递给函数的Promise时,它才能像这样工作。

因此问题在于,当您在链中调用函数时,已经对其进行了重新分配,.这就是为什么您无法再访问原始“名称”的原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R-如何获取max()以返回变量名称而不是变量内容?

来自分类Dev

R获取函数参数的名称

来自分类Dev

从循环变量获取函数名称

来自分类Dev

获取变量中包含的函数的名称

来自分类Dev

获取作为函数参数传递的变量的名称

来自分类Dev

获取变量中包含的函数的名称

来自分类Dev

获取返回可扩展连接器变量名称和/或连接器变量数量的函数?

来自分类Dev

无法返回/获取对函数内部变量的访问

来自分类Dev

获取R中的函数名称

来自分类Dev

Typeof变量返回“对象”,如何获取对象的名称/类型?

来自分类Dev

如何获取存储在变量中的函数的参数名称?

来自分类Dev

如何获取F#中的函数自变量名称?

来自分类Dev

获取变量函数表达式的名称?

来自分类Dev

PHP如何从变量获取和使用名称函数?

来自分类Dev

在javascript中获取函数内部的变量名称

来自分类Dev

是否可以在函数内部获取结果变量名称?

来自分类Dev

R函数返回一个函数...和变量范围

来自分类Dev

PHP,CURL:函数获取响应代码并返回变量

来自分类Dev

PHP,CURL:函数获取响应代码并返回变量

来自分类Dev

获取作为变量传递的函数的返回值

来自分类Dev

获取引用变量的名称

来自分类Dev

函数如何在R中返回其名称和参数

来自分类Dev

哪个函数将标识R变量的封闭环境的名称?

来自分类Dev

如何在R函数中检测自由变量名称

来自分类Dev

R:组合函数并定义生成的变量的名称

来自分类Dev

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

来自分类Dev

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

来自分类Dev

从函数外部返回变量名称,作为python函数内部的字符串

来自分类Dev

获取函数的名称空间

Related 相关文章

热门标签

归档