繁体   English   中英

在 R 中的另一个变量中调用变量名

[英]Call a variable name within another variable in R

我有一个变量:

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)):

如何将变量(对象)名称转换为字符串

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

当你写Real_friend = Person1 ,R 只是将 Person1 的内容放入 Real_friend 中,它不保存任何通过 Person1 完成的记录。 有一两件事你可以做的,是通过"Person1"到Real_friend,然后或者在打电话Real_friend当你需要"Person1 ”作为输出,或在通话get(Real_Friend)当你想PERSON1的内容。

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

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

> Real_friend<-substitute(Person1)

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

> Real_friend
Person1

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

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

同样,这些选项都不允许您从Real_friend<-Person1开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM