【问题标题】:Call a variable name within another variable in R在 R 中的另一个变量中调用变量名
【发布时间】:2021-03-02 21:46:45
【问题描述】:

我有一个变量:

Person1 = "friend"

我保存在第二个变量中,即:

Real_friend = Person1

有没有可能有这样的功能:

   output <- myfunc(Real_friend)
   myfunc <- function(v1) {
     # do something with v1
     # so that it prints "Person1" when 
     # this function is called 
     #
     # instead of "friend"
     return ()
   }

output = "Person1"

我已经尝试应用这里建议的方法:deparse(substitute(v1)):

How to convert variable (object) name into String

但它似乎不起作用。 提前非常感谢

【问题讨论】:

    标签: r string function reference


    【解决方案1】:

    当你写Real_friend = Person1时,R只是把Person1的内容放到Real_friend中,它不保存任何通过Person1完成的记录。您可以做的一件事是将"Person1" 传递给Real_friend,然后在需要"Person1" 作为输出时调用Real_friend,或者在需要Person1 的内容时调用get(Real_Friend)

    Person1<-"John"
    > Real_friend<-"Person1"
    > Real_friend
    [1] "Person1"
    > get(Real_friend)
    [1] "John"
    

    使用您提供的链接实现类似目标的第二种方法是:

    > Real_friend<-substitute(Person1)
    

    现在Real_friend 的内容是对Person1 的未评估调用:

    > Real_friend
    Person1
    

    您可以使用deparse以字符串形式获取变量的名称,也可以使用eval获取变量的内容:

    > deparse(Real_friend)
    [1] "Person1"
    > eval(Real_friend)
    [1] "John"
    

    同样,这些选项都不允许您以 Real_friend&lt;-Person1 开头。

    【讨论】:

      猜你喜欢
      • 2020-10-09
      • 1970-01-01
      • 2014-01-12
      • 1970-01-01
      • 2021-08-22
      • 2014-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多