从函数中获取对象名称

泰勒·林克

标题不是超级描述性的,因为问题比我能想到的合理标题更长。

我想拥有一个可以从其他函数中获取对象名称的函数,该函数可以用作另一个函数中的参数。这是一个准系统的尝试:

grab <- function(x) {
    as.character(substitute(x))
}

FUN <- function(foo, bar = grab(foo)) {
    bar
}

FUN(mtcars)

在这里,我想FUN返回字符串“ mtcars”,但它返回“ foo”。制作获取功能如何做到这一点(我想这样做是因为我将使用它作为txt / csv等文件的默认值。这是一个方便的设置。

这是一些失败的尝试(但是我想拥有一个通用的抓取功能):

FUN2 <- function(foo, bar = as.character(substitute(bar))) {
   bar
}

FUN2(mtcars)

#==================

FUN3 <- function(foo, bar) {
    if(missing(bar)) bar <- foo
    as.character(substitute(bar))
}

FUN3(mtcars)

现实生活中的例子:

real_example <- function(obj, file = grab(obj)) {
    write.csv(obj, file = sprintf("%s.csv", file))
}
斯吉布

您可以尝试sys.call访问父调用:

## "which" is the number of the argument of interest
grab <- function(which) {
  ## which + 1, because [1] == name of function/call
  ## and arguments are 2:n
  as.character(sys.call(-1L)[which+1L])
}

FUN <- function(foo, bar = grab(1L)) {
  bar
}

FUN(mtcars)
# "mtcars"

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从函数中获取对象名称

来自分类Dev

获取对象名称

来自分类Dev

在jQuery中获取对象名称?

来自分类Dev

从数组中获取对象名称

来自分类Dev

如何在 JavaScript 中获取对象的对象名称

来自分类Dev

Qjson获取对象名称

来自分类Dev

获取嵌套的对象名称

来自分类Dev

在Java中创建对象名称时如何获取?

来自分类Dev

如何在javascript或/和jquery中获取“ this”的对象名称?

来自分类Dev

仅在ListView中获取姓氏对象名称

来自分类Dev

如何在Django中通过queryset获取对象名称

来自分类Dev

在Java中创建对象名称时,如何获取?

来自分类Dev

如何在PHP中获取对象名称

来自分类Dev

直接调用对象时获取传递给`print`的对象名称(不表达`print`函数)

来自分类Dev

DXL获取ole对象名称

来自分类Dev

从.R文件获取对象名称

来自分类Dev

python获取引用的对象名称

来自分类Dev

在javascript中获取JSON对象的对象名称并将其存储在字符串数组中

来自分类Dev

JMX中的MBean嵌套对象名称

来自分类Dev

AS3中的动态对象名称

来自分类Dev

警告中缺少模拟对象名称

来自分类Dev

C中的结构对象名称指针

来自分类Dev

在Python中输入对象名称空间

来自分类Dev

React 中的条件对象名称

来自分类Dev

将对象名称转换为匿名函数中tidyverse链中的字符串

来自分类Dev

将对象名称传递到do.call()函数中

来自分类Dev

如何在Python中从self方法获取自身对象名称

来自分类Dev

如何从Javascript中指向它的变量中获取对象名称

来自分类Dev

如何在Python中从self方法获取自身对象名称