如果我知道R中该向量的值,如何获取数值向量

时间:2014-04-30 18:10:08

标签: r

所以,我会举一个例子。 W = 5 现在有些功能,说“逆”...... 我想要的是这个

  

逆(5)

输出应为“w”。

我想问一下在R中是否有任何内置函数。

如果没有,那么如何为此编写代码?

1 个答案:

答案 0 :(得分:3)

相当有趣的问题,恕我直言(至少在理论上 - 我不建议在真正的应用程序中做这样的事情。)

让我们在全局环境中绑定一些名称(您可以将其视为在“控制台”中创建“变量”):

x <- 1:3
y <- c(1, 2, 3)
z <- list("a")
w <- c(1, 2, 3, 4)

这是一个函数,它通过全局环境中的每个名称进行搜索,并检查绑定到该名称的任何对象是否与给定的value 相同

inverse <- function(value) {
   objects <- ls(envir=globalenv())
   for (o in objects)
      if (identical(get(o, envir=globalenv()), value))
         return(o)
   return(NULL) # if not found
}

一些结果:

inverse(1:3)
## [1] "x"
inverse(c(1, 2, 3))
## [1] "y"
inverse(list("a"))
## [1] "z"
inverse(1:4) # no such object, as w is not identical to c(1L, 2L, 3L, 4L)
## NULL

identical执行的测试可能过于严格,但我认为这是您实验的一个很好的起点。